如何创建列表视图onItemclicklistener [英] How to create listview onItemclicklistener

查看:120
本文介绍了如何创建列表视图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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆