【发布时间】:2013-11-21 17:30:25
【问题描述】:
当我在尝试将我的 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
}
}
我将感谢您提供的任何帮助。谢谢你!
编辑
这行得通吗?
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);
【问题讨论】:
-
将点击分配给每个项目?能详细点吗?
-
是的,就像我之前使用的 simple_list_layout 一样,它没有 getItem、getCount 参数,所以它非常简单,现在对于具有此参数的自定义适配器,我很困惑采取什么步骤。
-
在onItemClick方法下写一个toast。您已经分配了点击侦听器,但正如我所见,您没有使用它的回调。并且请在 getView 方法中重用您的视图。
-
@OluleyeIResþektIdowu 单击列表行中的文本视图?
-
我希望 ListView 的每个项目都能够打开一个新的意图,我通过上面的 EDIT 使用简单布局实现了这一点,但是当我将过滤方法应用于这个简单布局时,它会混乱提高意图。这就是我选择customAdapter的原因。我希望我说得通?
标签: java android listview android-listview