简体   繁体   English

如何在ANDROID自定义Listview适配器中使用setonitemclicklistener

[英]How to use setonitemclicklistener in ANDROID custom Listview Adapter

I have a custom listview adapter. 我有一个自定义的listview适配器。 I want to include setontemclicklistener to disable a listitem from the listview. 我想包括setontemclicklistener以禁用列表视图中的列表项。 I've tried using onitemclicklistener but it doesn't work, can you help me out? 我已经尝试过使用onitemclicklistener,但无法正常工作,您能帮帮我吗?

Home class: 家庭班:

public class Home extends Activity {

JSONObject jsonobject;
JSONArray jsonarray;
ListView listview;
ListViewAdapter adapter;

SharedPreferences pref;
String uid;
static String user_id,us;
ArrayList<HashMap<String, String>> arraylist;

//static String BET_ID = "bet_id";
static String QUESTION = "question";
static String QUES_ID = "ques_id";



@SuppressLint("NewApi")
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    pref = PreferenceManager.getDefaultSharedPreferences(this);
    setContentView(R.layout.questionlist);

uid = pref.getString("user_id",null);
Log.d("uid", ""+uid);



    new DownloadJSON().execute();
}


private class DownloadJSON extends AsyncTask<Void, Void, Void> {

    @Override
    protected Void doInBackground(Void... params) {


        arraylist = new ArrayList<HashMap<String, String>>();

        jsonobject = JSONfunctions
                .getJSONfromURL("http://192.168.1.23/MutilatedPHP/QuizGame/quesdownloadjson.php");

        try {

            jsonarray = jsonobject.getJSONArray("ques");

            for (int i = 0; i < jsonarray.length(); i++) {
                HashMap<String, String> map = new HashMap<String, String>();
                jsonobject = jsonarray.getJSONObject(i);


                map.put("question", jsonobject.getString("question"));  
                map.put("ques_id", jsonobject.getString("ques_id"));    



                arraylist.add(map);
            }
        } catch (JSONException e) {
            Log.e("Error", e.getMessage());
            e.printStackTrace();
        }
        return null;
    }

    @Override
    protected void onPostExecute(Void args) {

        listview = (ListView) findViewById(R.id.listView1);

        adapter = new ListViewAdapter(Home.this, arraylist);

        listview.setAdapter(adapter);


    }
}
}

ListviewAdapter : ListviewAdapter:

public class ListViewAdapter extends BaseAdapter {

Context context;
LayoutInflater inflater;
ArrayList<HashMap<String, String>> data;



HashMap<String, String> resultp = new HashMap<String, String>();

public ListViewAdapter(Context context,
        ArrayList<HashMap<String, String>> arraylist) {
    this.context = context;
    data = arraylist;

}

@Override
public int getCount() {
    return data.size();

}

@Override
public Object getItem(int position) {
    return null;
}

@Override
public long getItemId(int position) {
    return 0;
}

@Override
public View getView(final int position, View convertView, ViewGroup parent) {

    TextView qs1;
    TextView qs2;


    View v = convertView;

    if (v == null) {
        LayoutInflater inflater = (LayoutInflater) context
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        v = inflater.inflate(R.layout.listitem, null);
    }



    resultp = data.get(position);


    qs2 = (TextView) v.findViewById(R.id.qs);



    qs2.setText(resultp.get(Home.QUESTION));





    v.setOnClickListener(new OnClickListener() {


        @Override
        public void onClick(View arg0) {



            resultp = data.get(position);


            Intent intent = new Intent(context, SingleItemView.class);


             intent.putExtra("question", resultp.get(Home.QUESTION));
             intent.putExtra("ques_id", resultp.get(Home.QUES_ID));



             context.startActivity(intent);


        }

    });

    return v;

}



}

Thank you in advance 先感谢您

Try This! 尝试这个!

In your MainActivity form where the Adapter class is called Add like this: 在您的MainActivity表单中,将Adapter类称为Add,如下所示:

  listView1.setOnItemClickListener(new OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> parent, View view,
               int position, long id) {

             // ListView Clicked item index
             int itemPosition     = position;


         }
     }); 

You just simple need to call OnItemClickListener for ListView. 您只需要为ListView调用OnItemClickListener

listview.setOnItemClickListener(new OnItemClickListener() {

    @Override
    public void onItemClick(AdapterView<?> a, View v, int position,
            long id) {


    }
});

Try this 尝试这个

listView.setOnItemClickListener();

@Override
    public void onItemClick(AdapterView<?> parent, View view, int position,
            long id) {
        //Use your code here
    }

Inside On Create use this method Inside On Create使用此方法

  listview = (ListView) findViewById(R.id.listView1);

  listview.setOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> a, View v, int position,
                long id) {
            Object o = listview.getItemAtPosition(position);

        }
    });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 Android ListView setOnItemClickListener未使用自定义适配器注册点击 - Android ListView setOnItemClickListener not registering click with custom adapter 带有自定义适配器setOnItemClickListener的ListView不起作用 - ListView With custom Adapter setOnItemClickListener not working 如何使用setOnItemClickListener从列表视图中的自定义适配器返回对象 - How to return object from custom adapter in listview using setOnItemClickListener setOnItemClickListener不能与自定义TextView ListView适配器一起使用 - setOnItemClickListener not working with Custom TextView ListView Adapter setOnItemClickListener()不适用于自定义ListView @Android - setOnItemClickListener() not working on custom ListView @ Android android的自定义ListView中的SetOnItemClickListener不响应 - SetOnItemClickListener not responding in custom ListView of android 使用自定义适配器的Android App上的setOnItemClickListener不触发 - setOnItemClickListener on Android App with custom Adapter not triggering 如何在ListView-Android中将ActionMode与“ setOnItemClickListener”方法一起使用? - How to use ActionMode with “setOnItemClickListener” method in ListView-Android? 如何使用 Kotlin 的自定义适配器为列表视图设置 OnItemClickListener - How to setOnItemClickListener for List View with custom adapter by Kotlin Android ListView:如何使用自定义适配器上的活动onClickListener? - Android ListView: How to use the activity onClickListener from a custom Adapter?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM