您的位置:首页 > 其它

列表适配器的使用(以及列表相应的一些监听方法)

2011-10-09 15:29 417 查看
一:这个是主页面的代码(主要实现各个列表方法的跳转以及目录):

public class ActivityMain extends Activity {
OnClickListener listener1 = null;
OnClickListener listener2 = null;
OnClickListener listener3 = null;
OnClickListener listener4 = null;
Button button1;
Button button2;
Button button3;
Button button4;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
prepareListeners();
setContentView(R.layout.main);
button1 = (Button) findViewById(R.id.activity_main_button1);
button1.setOnClickListener(listener1);
button2 = (Button) findViewById(R.id.activity_main_button2);
button2.setOnClickListener(listener2);
button3 = (Button) findViewById(R.id.activity_main_button3);
button3.setOnClickListener(listener3);
button4 = (Button) findViewById(R.id.activity_main_button4);
button4.setOnClickListener(listener4);

}
private void prepareListeners(){
listener1 = new OnClickListener() {
public void onClick(View v) {
Intent intent1 = new Intent(ActivityMain.this, ActivityList1.class);
startActivity(intent1);
}
};
listener2 = new OnClickListener() {
public void onClick(View v) {
Intent intent2 = new Intent(ActivityMain.this, ActivityList2.class);
startActivity(intent2);

}
};

listener3 = new OnClickListener() {
public void onClick(View v) {
Intent intent3 = new Intent(ActivityMain.this, ActivityList3.class);
startActivity(intent3);

}
};

listener4 = new OnClickListener() {
public void onClick(View v) {
Intent intent4 = new Intent(ActivityMain.this, ActivityList4.class);
startActivity(intent4);

}
};

}
}

二.下面是列表设置以及适配器的使用

public class ActivityList1 extends Activity {
ListView listView;
private String[] data = { "a", "b
"c", "d", "e",
"f", "g","h" };
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
listView = new ListView(this);
//listView.setAdapter(new ArrayAdapter<String>(this,
// android.R.layout.simple_list_item_1, data));
listView.setAdapter(new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_single_choice, data));
/*android.R.layout.simple_list_item_1 一行text
android.R.layout.simple_list_item_2 一行title,一行text
android.R.layout.simple_list_item_single_choice 单选按钮
android.R.layout.simple_list_item_multiple_choice 多选按钮
android.R.layout.simple_list_item_checked checkbox
*/
listView.setItemsCanFocus(true);//获取选项的焦点
listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE);//选中模式为多重选择(可以选多个)
setContentView(listView);
}
}

三.下面是列表键值对的使用以及适配器的使用

public class ActivityList2 extends Activity {

private List<Map<String, Object>> data;
private ListView listView = null;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
PrepareData();
listView = new ListView(this);
// 利用系统的layout显示一项
// SimpleAdapter adapter = new SimpleAdapter(this, data,
// android.R.layout.simple_list_item_1, new String[] { "性别" },
//new int[] { android.R.id.text1 });
// 利用系统的layout显示两项
SimpleAdapter adapter = new SimpleAdapter(this, data,
android.R.layout.simple_list_item_2, new String[] { "姓名","性别" },
new int[] { android.R.id.text1 , android.R.id.text2});
// 利用自己的layout来进行显示两项
//SimpleAdapter adapter = new SimpleAdapter(this, data,
// R.layout.list_item, new String[] { "姓名", "性别" }, new int[] {
// R.id.mview1, R.id.mview2 });
listView.setAdapter(adapter);
setContentView(listView);

OnItemClickListener listener = new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
setTitle(parent.getItemAtPosition(position).toString());
}
};
listView.setOnItemClickListener(listener);
}

private void PrepareData() {
data = new ArrayList<Map<String, Object>>();
Map<String, Object> item;
item = new HashMap<String, Object>();
item.put("姓名", "张三小朋友");
item.put("性别", "男");
data.add(item);
item = new HashMap<String, Object>();
item.put("姓名", "王五同学");
item.put("性别", "男");
data.add(item);
item = new HashMap<String, Object>();
item.put("姓名", "小李师傅");
item.put("性别", "女");
data.add(item);
}
}

四.下面是继承ListActivity的列表使用方法

public class ActivityList3 extends ListActivity {

private String[] data ={"a", "b",
"c", "d", "e",
"f", "g","h"
};
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.list3);
setListAdapter(new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, data));

}

protected void onListItemClick(ListView listView, View v, int position, long id) {
super.onListItemClick(listView, v, position, id);
setTitle(listView.getItemAtPosition(position).toString());
}

}

以为XML文件代码

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ListView android:id="@id/android:list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
<TextView android:id="@id/android:empty"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="对不起,没有数据显示"/>
</LinearLayout>

五.下面是滑动列表监听功能

public class ActivityList4 extends Activity {
ListView listView;
private String[] data = { "a", "b", "c",
"d", "e", "f" };
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
listView = new ListView(this);
listView.setAdapter(new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, data));
setContentView(listView);
OnItemSelectedListener itemSelectedListener = new OnItemSelectedListener(){

public void onItemSelected(AdapterView<?> parent, View arg1,
int position, long arg3) {
setTitle("您选中的是: "+parent.getItemAtPosition(position).toString());

}

public void onNothingSelected(AdapterView<?> arg0) {
setTitle("");

}

};
listView.setOnItemSelectedListener(itemSelectedListener);
}
}

大家可以自己写出自己内定的适配器,这样使用会很方便,也不用每次在代码中声明调用,也可以节约大量的时间以及代码的维护效果!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: