做列表有两种方法。我选择了第二种使用一个item.xml保存列表信息
1.res-->layout-->activity_main.xml
拖动一个ListView,修改id为lv
2.在layout中新建一个item.xml用于存放列表item的信息
在item.xml中拖动一个TextView,修改id为tv
3.在主程序的OnCreate方法中创建一个链表用于存放数据
ArrayList<String> data =new ArrayList<String>();
data.add("鬼剑士");
data.add("神枪手");
data.add("圣职者");
4.添加数据适配器
ArrayAdapter adapter =new ArrayAdapter(this, R.layout.item, R.id.tv,data);
5.设置数据适配器
ListView lv=(ListView) findViewById(R.id.lv);
lv.setAdapter(adapter);
6.添加监听器
//这个地方卡了很久,最后得出个结论 列表的监听器要用OnItemClickListener
// 而类似的下拉框的监听器必须使用OnItemSelectedListener
OnItemClickListener listener =new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
String item =arg0.getItemAtPosition(arg2).toString();
Toast.makeText(MainActivity.this, item,1).show();
}
};
7.不能忘记在上面得为适配器绑定监听器
lv.setOnItemClickListener(listener);
最后附上MainActivity.java
package com.example.mylistview;
import java.util.ArrayList;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ArrayList<String> data =new ArrayList<String>();
data.add("鬼剑士");
data.add("神枪手");
data.add("圣职者");
ArrayAdapter adapter =new ArrayAdapter(this, R.layout.item, R.id.tv,data);
ListView lv=(ListView) findViewById(R.id.lv);
lv.setAdapter(adapter);
lv.setOnItemClickListener(listener);
}
OnItemClickListener listener =new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
String item =arg0.getItemAtPosition(arg2).toString();
Toast.makeText(MainActivity.this, item,1).show();
}
};
}
1.res-->layout-->activity_main.xml
拖动一个ListView,修改id为lv
2.在layout中新建一个item.xml用于存放列表item的信息
在item.xml中拖动一个TextView,修改id为tv
3.在主程序的OnCreate方法中创建一个链表用于存放数据
ArrayList<String> data =new ArrayList<String>();
data.add("鬼剑士");
data.add("神枪手");
data.add("圣职者");
4.添加数据适配器
ArrayAdapter adapter =new ArrayAdapter(this, R.layout.item, R.id.tv,data);
5.设置数据适配器
ListView lv=(ListView) findViewById(R.id.lv);
lv.setAdapter(adapter);
6.添加监听器
//这个地方卡了很久,最后得出个结论 列表的监听器要用OnItemClickListener
// 而类似的下拉框的监听器必须使用OnItemSelectedListener
OnItemClickListener listener =new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
String item =arg0.getItemAtPosition(arg2).toString();
Toast.makeText(MainActivity.this, item,1).show();
}
};
7.不能忘记在上面得为适配器绑定监听器
lv.setOnItemClickListener(listener);
最后附上MainActivity.java
package com.example.mylistview;
import java.util.ArrayList;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ArrayList<String> data =new ArrayList<String>();
data.add("鬼剑士");
data.add("神枪手");
data.add("圣职者");
ArrayAdapter adapter =new ArrayAdapter(this, R.layout.item, R.id.tv,data);
ListView lv=(ListView) findViewById(R.id.lv);
lv.setAdapter(adapter);
lv.setOnItemClickListener(listener);
}
OnItemClickListener listener =new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
String item =arg0.getItemAtPosition(arg2).toString();
Toast.makeText(MainActivity.this, item,1).show();
}
};
}