ListAdapter是接口,里面含有许多抽象方法。叫适配器的原因是,需要接口适应什么需求,就写相应的方法(这就是适配器)。
listView的大体思路:
加载布局
找到合适的适配器,声明对象,并加载。
在listView上增加监听器
//context的理解,一个activity对应一个上下文配置环境,即activity.main的作用是取得该activity对应的context。
//调试新方法,类似于打印的toast。
示例代码:
<span style="font-family:Microsoft YaHei;font-size:18px;">package com.study.demo;
import java.util.ArrayList;
import android.app.Activity;
import android.content.Intent;
import android.content.res.Resources;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.Toast;
public class MainActivity extends Activity {
protected ListView lv;
private String[] mainOptions;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mainOptions = getResources().getStringArray(R.array.testarray);
lv = (ListView) findViewById(R.id.lv);
ListAdapter adapter = new ArrayAdapter<String>(MainActivity.this,
android.R.layout.simple_list_item_1, mainOptions);
lv.setAdapter(adapter);
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
String option = mainOptions[position];
Toast.makeText(MainActivity.this, "您点击的是" + option, 1000)
.show();
if (position == 0) {
Intent intent0 = new Intent(MainActivity.this, NsdActivity.class);
startActivity(intent0);
}else if (position == 1) {
Intent intent1 = new Intent(MainActivity.this, ImgActivity.class);
startActivity(intent1);
}else if (position == 2) {
Intent intent2 = new Intent(MainActivity.this, MenuActivity.class);
startActivity(intent2);
}else if (position == 3) {
Intent intent3 = new Intent(MainActivity.this, MapActivity.class);
startActivity(intent3);
}else if (position == 4) {
Intent intent4 = new Intent(MainActivity.this, SimActivity.class);
startActivity(intent4);
}
}
});
}
}
</span>