【发布时间】:2011-11-26 03:42:17
【问题描述】:
【问题讨论】:
标签: android listview android-activity
【问题讨论】:
标签: android listview android-activity
您可以将 xjaphx 代码用于列表视图。如果您为您的列表视图使用自定义适配器,那么您可以使用下面的代码..
listview.setAdapter(new customeAdapter(this));
CustomAdapter 的类如下
class CustomAdapter extends BaseAdapter{
private Context context;
CustomAdapter(Context context)
{
this.context=context;
}
@Override
public int getCount() {
return 5;//size of listview
}
@Override
public Object getItem(int arg0) {
// TODO Auto-generated method stub
return arg0;
}
@Override
public long getItemId(int arg1) {
// TODO Auto-generated method stub
return arg1;
}
@Override
public View getView(final int position, View view, ViewGroup viewgroup) {
ViewContainer holder = null;
LayoutInflater inflater = LayoutInflater.from(context);
if (view == null)
{
view = inflater.inflate(R.layout.myfeedlist, null);
holder = new ViewContainer();
holder.feedTitle = (TextView) view.findViewById(R.id.title);
holder.arrow=(ImageView)view.findViewById(R.id.arrow_imageview);
view.setTag(holder);
}
else
{
holder = (ViewContainer) view.getTag();
}
holder.feedTitle.setText(mylist.get(position));
holder.feedTitle.setTextColor(Color.YELLOW);
holder.arrow.setImageResource(R.drawable.arrow);
view.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v)
{
Intent intent=new Intent(currentclass.this,DifferentActivity.class);
startActivity(intent);
finish();
}
});
return view;
}
}
class ViewContainer
{
TextView feedTitle;
ImageView arrow;
}
【讨论】:
类似这样的:
public class MainAcitvity {
ListView mList = null;
public void onCreate() {
// load list view
mList = (ListView) findViewById(....);
// set whatever data and adapter..
mList.setAdapter(...);
// set a item click
mList.setOnItemClickListener( new OnItemClickListener() {
public void onItemClick( AdapterView<?> parent, View view, int position, long id ) {
Intent i = new Intent(MainActivity.this, DifferentActivity.class) // set your Different activity class here
MainActivity.startActivity(i);
}
});
}
}
【讨论】:
如果您有多个不同的活动,请确保确定要开始哪个活动。
我的示例偏离了列表视图顺序不变的假设。
Context mContext = this;
...
public void onItemClick( AdapterView<?> parent, View view, int position, long id) {
if(id == 0) {
mContext.startActivity(new Intent(Main.this,Activity0.class));
} else if (id == 1) {
mContext.startActivity(new Intent(Main.this,Activity1.class));
}
}
针对每个不同的活动等等。
请注意,您只需一行即可启动 Activity,节省输入时间和极少的内存。
【讨论】:
可以使用 swith(){} 来实现。
【讨论】: