【问题标题】:How To Get My OnItemClickListener To Work And Show Toast with Item Position?如何让我的 OnItemClickListener 工作并显示带有项目位置的 Toast?
【发布时间】:2015-01-14 13:59:32
【问题描述】:

我正在尝试使用图标进行自定义列表我使用自定义视图来制作图标+文本 现在我正在尝试获取列表中的项目以响应 OnItemClickListener 它没有响应,也没有在项目的位置显示我的祝酒词

请帮忙。

    ////////////////////////////////////THIS IS My Main Activity///////////////////
    package com.example.mycash;

    import android.app.ActionBar;
    import android.app.Activity;
    import android.content.Context;
    import android.database.DataSetObserver;
    import android.os.Bundle;
    import android.support.v4.widget.DrawerLayout;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.AdapterView;
    import android.widget.AdapterView.OnItemClickListener;
    import android.widget.ArrayAdapter;
    import android.widget.ListAdapter;
    import android.widget.ListView;
    import android.widget.Toast;


    public class MainActivity extends Activity implements OnItemClickListener  {
                DrawerLayout drawerLayout;
                ListView listView;
                AdapterList adapterList;

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
         //Hide Action Bar--------------------------------------   
            View decorView = getWindow().getDecorView();
            int uiOptions = View.SYSTEM_UI_FLAG_FULLSCREEN;
            decorView.setSystemUiVisibility(uiOptions);
            ActionBar actionBar = getActionBar();
            actionBar.hide();
        //Hide Action Bar---------------------------------------  
           listView = (ListView)findViewById(R.id.listMenu);
           final AdapterList adapterList = new AdapterList(this);
           listView.setAdapter(adapterList);


           drawerLayout = (DrawerLayout)findViewById(R.id.drawerLayout); 


        }//OnCreate Closing...

        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long l) {
            Toast.makeText(getBaseContext(), adapterList.menu[position] + "Test" , Toast.LENGTH_SHORT).show();

        }  
    }



////////////////This IS My AdapterList Class here Im Creating Custom adapter///////////////////
package com.example.mycash;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

public class AdapterList extends BaseAdapter {

    private Context context;

    String[] menu = {"How Much Did I Work"
            ,"Add/Edit Work Space"
            ,"My Profile"
            ,"Send Work Doc Via Mail"
            ,"Send FeedBack"
            ,"Bug Report"};
     int[] icons = {R.drawable.clock,R.drawable.edit,R.drawable.profile,R.drawable.mail,R.drawable.sendfeed,R.drawable.bug};

    public AdapterList(Context context){
        this.context = context;

    }

    @Override
    public int getCount() {

        return menu.length;
    }

    @Override
    public Object getItem(int position) {

        return menu[position];
    }

    @Override
    public long getItemId(int position) {
        // Not In Use  For Future Uses...
        return position;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View row = null;
        if(convertView == null){

            LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            row = inflater.inflate(R.layout.custom_row_layout, null);

        }else{
             row = null;
        }
        TextView customTextView = (TextView)row.findViewById(R.id.customText1);
        ImageView customImageView = (ImageView)row.findViewById(R.id.customImage1);

        customTextView.setText(menu[position]);
        customImageView.setImageResource(icons[position]);

        return row;
    }


}

【问题讨论】:

    标签: java android adt onclicklistener onitemclicklistener


    【解决方案1】:

    您必须将 onItemClick 侦听器设置为 listview:

    listView.setOnItemClickListener(this);
    

    【讨论】:

      【解决方案2】:

      您还没有在事件监听器上设置 listView(OnItemClickListner),这样做应该可以工作。

      【讨论】:

        猜你喜欢
        • 2023-03-30
        • 2011-07-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多