Android 如何在Itemclicklistener上创建列表视图
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/10295226/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
How to create listview onItemclicklistener
提问by Rahul Patel
I want to create listview. I got the value from the JSON. Here I got the value from the json into listview but i can't get the onItemclickListener method. Why this is happening I don't know ,Please help me my coding as shown below.
我想创建列表视图。我从 JSON 中得到了值。在这里,我将值从 json 获取到 listview 中,但无法获取 onItemclickListener 方法。为什么会发生这种情况我不知道,请帮助我进行编码,如下所示。
Logcat is not displaying anything.
Logcat 没有显示任何内容。
Thanks.
谢谢。
<ListView
android:id="@+id/contests_listView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_below="@+id/header"
android:focusable="true">
</ListView>
Activity.java
活动.java
public class Activites_Activity extends CheerfoolznativeActivity {
private ListView contests_listView;
private ProgressBar pgb;
ActivitiesBean bean;
ArrayList<Object> listActivities;
ListAdapter adapter;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_listview);
setHeader("Activites");
contests_listView = (ListView) findViewById(R.id.contests_listView);
pgb = (ProgressBar) findViewById(R.id.contests_progressBar);
listActivities = new ArrayList<Object>();
new FetchActivitesTask().execute();
}
public class FetchActivitesTask extends AsyncTask<Void, Void, Void> {
int i =0;
@Override
protected void onPreExecute() {
// TODO Auto-generated method stub
super.onPreExecute();
pgb.setVisibility(View.VISIBLE);
}
@Override
protected Void doInBackground(Void... params) {
// TODO Auto-generated method stub
String url = "my json URL";
String strResponse = util.makeWebCall(url);
try {
//my json logic here
}
catch (JSONException e) {
e.printStackTrace();
}
return null;
}
@Override
public void onPostExecute(Void result) {
// TODO Auto-generated method stub
super.onPostExecute(result);
pgb.setVisibility(View.GONE);
displayAdapter();
}
}
public void displayAdapter()
{
adapter = new ListAdapter(this, listActivities);
contests_listView.setAdapter(adapter);
contests_listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1,
int position, long id) {
// Toast.makeText(getApplicationContext(),"Title => "+items.get(position), Toast.LENGTH_SHORT).show();
System.out.println("=========== Click");
bean = (ActivitiesBean) adapter.getItem(position);
Intent in1 = new Intent(Activites_Activity.this, Activity_display.class);
in1.putExtra("ActivityObject", bean);
startActivity(in1);
}
});
}
}
I also use this
我也用这个
contests_listView.setItemsCanFocus(true);
回答by GAMA
Try this :
尝试这个 :
contests_listView.setOnItemClickListener(new android.widget.AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,int position, long id) {
String item = (String) contests_listView.getItemAtPosition(position);
Toast.makeText(this,"You selected : " + item,Toast.LENGTH_SHORT).show();
}
});
回答by K.Muthu
Try this code:
试试这个代码:
protected void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);
Toast.makeText(this, "message", Toast.LENGTH_LONG).show();
}
回答by Praveen Singh
Use This:
用这个:
contests_listView.setOnItemClickListener(new AdapaterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1,
int position, long id) {
Intent in1 = new Intent(Activites_Activity.this, Activity_display.class);
startActivity(in1);
}
});