単純リストビュー 拡張子:txtvbswsfjsphpjavahtmlutf8sjis package com.example.lightbox.listviewtest; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.widget.ArrayAdapter; import android.widget.ListView; public class MainActivity extends AppCompatActivity { private String[] data = new String[] { "Yahoo! ニュース", "Yahoo! 雨雲ズームレーダー", "ねとらぼ", "Stack Overflow", "Android Developers" }; private String [] urlData = new String[] { "https://news.yahoo.co.jp/", "https://weather.yahoo.co.jp/weather/zoomradar/", "http://nlab.itmedia.co.jp/", "http://stackoverflow.com/", "https://developer.android.com/" }; private ArrayAdapter<String> arrayAdapter; private ListView listView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // リストビュー listView = (ListView) MainActivity.this.findViewById(R.id.listView); listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) { // アダプターを取得 ArrayAdapter<String> adapter = (ArrayAdapter<String>) adapterView.getAdapter(); // 行データを取得 String row = (String)adapter.getItem(i); Log.i("lightbox",row); } }); // データが入るオブジェクト arrayAdapter = new ArrayAdapter<String>(MainActivity.this,android.R.layout.simple_list_item_1); // リストビューにデータが入るオブジェクトをセット listView.setAdapter(arrayAdapter); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.menu_main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { int id = item.getItemId(); if (id == R.id.action_1) { // データをクリア arrayAdapter.clear(); // 表示するデータをセット arrayAdapter.addAll(data); return true; } return super.onOptionsItemSelected(item); } } メニューから、リストビューに配列をセットして表示する データ数が少ないので、まだスクロールしない クリックした時にブラウザで表示する為の URL の配列も用意 ArrayAdapter のコンストラクタは、ArrayAdapter(Context context, int resource) を使用しているので、後からデータを addAll で追加しています
package com.example.lightbox.listviewtest; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.widget.ArrayAdapter; import android.widget.ListView; public class MainActivity extends AppCompatActivity { private String[] data = new String[] { "Yahoo! ニュース", "Yahoo! 雨雲ズームレーダー", "ねとらぼ", "Stack Overflow", "Android Developers" }; private String [] urlData = new String[] { "https://news.yahoo.co.jp/", "https://weather.yahoo.co.jp/weather/zoomradar/", "http://nlab.itmedia.co.jp/", "http://stackoverflow.com/", "https://developer.android.com/" }; private ArrayAdapter<String> arrayAdapter; private ListView listView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // リストビュー listView = (ListView) MainActivity.this.findViewById(R.id.listView); listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) { // アダプターを取得 ArrayAdapter<String> adapter = (ArrayAdapter<String>) adapterView.getAdapter(); // 行データを取得 String row = (String)adapter.getItem(i); Log.i("lightbox",row); } }); // データが入るオブジェクト arrayAdapter = new ArrayAdapter<String>(MainActivity.this,android.R.layout.simple_list_item_1); // リストビューにデータが入るオブジェクトをセット listView.setAdapter(arrayAdapter); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.menu_main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { int id = item.getItemId(); if (id == R.id.action_1) { // データをクリア arrayAdapter.clear(); // 表示するデータをセット arrayAdapter.addAll(data); return true; } return super.onOptionsItemSelected(item); } }
メニューから、リストビューに配列をセットして表示する データ数が少ないので、まだスクロールしない クリックした時にブラウザで表示する為の URL の配列も用意 ArrayAdapter のコンストラクタは、ArrayAdapter(Context context, int resource) を使用しているので、後からデータを addAll で追加しています
拡張子:txtvbswsfjsphpjavahtmlutf8sjis <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".MainActivity"> <ListView android:id="@+id/listView" android:layout_width="match_parent" android:layout_height="match_parent"/> </LinearLayout>
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".MainActivity"> <ListView android:id="@+id/listView" android:layout_width="match_parent" android:layout_height="match_parent"/> </LinearLayout>