当我尝试修复我的listView项目的位置到期望的意图过滤时,并获得信息我可以重写使用自定义适配器的问题,我已经做到了,但我没有知道如何分配点击到每个项目,请检查以下代码:设置onItemClick到自定义适配器ListView
public class IndexPageActivity extends Activity {
ListView listView;
EditText editTextB;
@Override
protected void onCreate(Bundle savfedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.indexpage);
listView = (ListView) findViewById(R.id.pageList);
editTextB = (EditText) findViewById(R.id.searchB);
listView.setAdapter(new PagesAdapter(this));
listView.setOnItemClickListener((OnItemClickListener) this);
}
}
class SingleRow {
String pagedata;
SingleRow(String pagedata){
this.pagedata=pagedata;
}
}
class PagesAdapter extends BaseAdapter implements OnItemClickListener{
ArrayList<SingleRow> pagelist;
Context context;
PagesAdapter(Context c){
context=c;
pagelist = new ArrayList<SingleRow>();
Resources res = c.getResources();
String [] pagedatas = res.getStringArray(R.array.pages_data);
for (int i=0;i<463;i++){
pagelist.add(new SingleRow(pagedatas[i]));
}
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return pagelist.size();
}
@Override
public Object getItem(int i) {
// TODO Auto-generated method stub
return pagelist.get(i);
}
@Override
public long getItemId(int i) {
// TODO Auto-generated method stub
return i;
}
@Override
public View getView(int i, View view, ViewGroup viewG) {
// TODO Auto-generated method stub
LayoutInflater inflater=(LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View row=inflater.inflate(R.layout.single_row,viewG,false);
TextView pagetitle = (TextView) row.findViewById(R.id.textViewRow);
SingleRow temp=pagelist.get(i);
pagetitle.setText(temp.pagedata);
return row;
}
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int i, long arg3) {
// TODO Auto-generated method stub
}
}
我将不胜感激任何帮助。感谢Yhu!
编辑
这项工作?
if (index == 0) {
Intent i = new Intent(this, WebViewActivity.class);
i.putExtra("keyHTML", "file:///android_asset/page1.html");
startActivity(i);
} else if (index == 1) {
Intent i = new Intent(this, WebViewActivity.class);
i.putExtra("keyHTML", "file:///android_asset/page2.html");
startActivity(i);
指派点击每个项目?你能详细说明吗? – Raghunandan
是的,就像我以前使用过simple_list_layout,它没有getItem,getCount参数一样,所以它非常简单,现在在使用这个参数的自定义适配器的情况下,我很困惑它要采取什么步骤。 –
在onItemClick方法下写一个toast。您已经分配了点击监听器,但您没有像我看到的那样使用它的回调。并且请在getView方法中重用您的视图。 – Devrim