如何创建列表视图onItemclicklistener [英] How to create listview onItemclicklistener
本文介绍了如何创建列表视图onItemclicklistener的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我要创建列表视图。我从JSON的价值。在这里,我从JSON到列表视图的价值,但我不能让onItemclickListener方法。为什么会这样,我不知道,请帮我,我的代码如下所示。
LogCat中不显示任何内容。
感谢。
<的ListView
机器人:ID =@ + ID / contests_listView
机器人:layout_width =FILL_PARENT
机器人:layout_height =FILL_PARENT
机器人:layout_below =@ + ID /头
机器人:可聚焦=真正的>
< / ListView控件>
Activity.java
公共类Activites_Activity扩展CheerfoolznativeActivity {
私人的ListView contests_listView;
私人进度PGB;
ActivitiesBean豆;
ArrayList的<对象> listActivities;
ListAdapter适配器;
保护无效的onCreate(包savedInstanceState){
super.onCreate(savedInstanceState);
的setContentView(R.layout.activity_listview);
SetHeader可以(Activites);
contests_listView =(ListView控件)findViewById(R.id.contests_listView);
PGB =(进度)findViewById(R.id.contests_progressBar);
listActivities =新的ArrayList<对象>();
新FetchActivitesTask()执行()。
}
公共类FetchActivitesTask扩展的AsyncTask<虚空,虚空,虚空> {
INT I = 0;
@覆盖
在preExecute保护无效(){
// TODO自动生成方法存根
super.on preExecute();
pgb.setVisibility(View.VISIBLE);
}
@覆盖
保护无效doInBackground(虚空...... PARAMS){
// TODO自动生成方法存根
字符串URL =我的JSON的URL;
字符串strResponse = util.makeWebCall(URL);
尝试 {
//我的JSON这里的逻辑
}
赶上(JSONException E){
e.printStackTrace();
}
返回null;
}
@覆盖
公共无效onPostExecute(无效的结果){
// TODO自动生成方法存根
super.onPostExecute(结果);
pgb.setVisibility(View.GONE);
displayAdapter();
}
}
公共无效displayAdapter()
{
适配器=新ListAdapter(这一点,listActivities);
contests_listView.setAdapter(适配器);
contests_listView.setOnItemClickListener(新OnItemClickListener(){
@覆盖
公共无效onItemClick(适配器视图<>为arg0,查看ARG1,
INT位置,长的id){
// Toast.makeText(getApplicationContext(),标题=>中+ items.get(位置),Toast.LENGTH_SHORT).show();
的System.out.println(===========点击);
豆=(ActivitiesBean)adapter.getItem(位置);
意图IN1 =新的意图(Activites_Activity.this,Activity_display.class);
in1.putExtra(ActivityObject,豆);
startActivity(IN1);
}
});
}
}
我也用这个
contests_listView.setItemsCanFocus(真正的);
解决方案
试试这个:
contests_listView.setOnItemClickListener(新android.widget.AdapterView.OnItemClickListener(){
@覆盖
公共无效onItemClick(适配器视图<>母公司视图中查看,INT位置,长的id){
字符串项= contests_listView.getItemAtPosition(位置);
Toast.makeText(这一点,你已经选择:+项目,Toast.LENGTH_SHORT).show();
}
});
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.
Logcat is not displaying anything.
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
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);
解决方案
Try this :
contests_listView.setOnItemClickListener(new android.widget.AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,int position, long id) {
String item = contests_listView.getItemAtPosition(position);
Toast.makeText(this,"You selected : " + item,Toast.LENGTH_SHORT).show();
}
});
这篇关于如何创建列表视图onItemclicklistener的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文