コメント |
[[単純リストビュー]]
@DIV
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);
}
}
@END
@SHOW
メニューから、リストビューに配列をセットして表示する
データ数が少ないので、まだスクロールしない
クリックした時にブラウザで表示する為の URL の配列も用意
ArrayAdapter のコンストラクタは、ArrayAdapter(Context context, int resource) を使用しているので、後からデータを addAll で追加しています
@END
|