为列表视图中的项目设置项目单击侦听器并转到新活动

艾哈迈德

我有列表视图(从数据库中检索数据并放入列表视图)。我想要做的是使每个项目都可点击,一旦点击,我希望它进入一个新的活动,我已经尝试过,setOnItemClickListener但它不起作用

public class MomentsActivity extends AppCompatActivity {


   ListView listView;
    TextView description;
    TextView location;
    TextView name;
    //ImageView image; used later when we want to display the image

    private TextView mTextMessage;

    private BottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener
            = new BottomNavigationView.OnNavigationItemSelectedListener() {

        @Override
        public boolean onNavigationItemSelected(@NonNull MenuItem item) {
            switch (item.getItemId()) {
                case R.id.navigation_moments:
                    Intent intent = new Intent(MomentsActivity.this, MomentsActivity.class);
                    intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
                    startActivity(intent);
                    break;

                case R.id.navigation_addmoment:
                    Intent intent2 = new Intent(MomentsActivity.this, AddMomentActivity.class);
                    intent2.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
                    startActivity(intent2);
                    break;
            }
            return false;
        }
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        myDb = new DatabaseHelper(this);
        setContentView(R.layout.activity_moments);
        BottomNavigationView navigation = (BottomNavigationView) findViewById(R.id.navigation);
        navigation.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener);
        mList = this.findViewById(R.id.my_listview);

        listView = (ListView) findViewById(R.id.my_listview);
        mList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                Intent intent = new Intent(MomentsActivity.this,MainActivity.class);
                intent.putExtra("textview_name", listView.getItemIdAtPosition(position));
                startActivity(intent);
            }
        });


        manageListView();






        getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
        getSupportActionBar().setCustomView(R.layout.actionbar_layout);
    }




    DatabaseHelper myDb;
    EditText editTitle, editDescription, editLocation;
    Button btnAddData;
    Button btnViewAll;
    SimpleCursorAdapter mSCA; //Adapts/Handles the data for the listview
    ListView mList;
    Cursor mCsr;


    int[] item_layout_ids_for_list = new int[]{
            R.id.textview_name,
            R.id.textview_description,
            R.id.textview_location
    };

    String[] columns_to_list = new String[]{
            DatabaseHelper.COL_2,
            DatabaseHelper.COL_3,
            DatabaseHelper.COL_5
    };

    private void manageListView() {
        mCsr = myDb.getAllData();
        if (mSCA == null) {
            // Builds the Adapter for the List
            mSCA = new SimpleCursorAdapter(
                    this,
                    R.layout.mylistview_item, mCsr,
                    columns_to_list,
                    item_layout_ids_for_list,
                    0
            );
            mList.setAdapter(mSCA); // Ties the Adapter to the ListView
        } else {
            mSCA.swapCursor(mCsr); // Refresh the List
        }
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        mCsr.close();
    }

    @Override
    protected void onResume() {
        super.onResume();
        manageListView();
    }

}
伊斯梅尔阿拉维

在列表中单击后用于执行操作的最佳方法是getview()列表视图 适配器方法中执行此操作

所以在你的适配器中

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

  view.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
            //use context in adapter constructor;
             Activity activity = (Activity) context 
             Intent intent = new Intent(context,MainActivity.class);
             intent.putExtra("textview_name", listView.getItemIdAtPosition(position));
             activity.startActivity(intent);
    }
});


return view ;
}

并且不要忘记删除您setOnItemClickListenerlistview

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

单击列表视图中每个项目的侦听器

在项目上单击侦听器以扩展ArrayAdapter的列表视图

如何基于列表视图中单击的项目启动新的活动?

回收器视图上的空指针异常项目单击侦听器活动在单击项目时关闭

FastAdapter 单击项目内视图的侦听器

Android:在“项目”上单击“侦听器”以实现列表视图基本适配器实现

使用适配器和数组列表时,我需要在回收视图中的项目上实现单击侦听器类

RecyclerView项目单击侦听器

单击列表视图项,转到->新活动?

单击侦听器以查看列表视图中自定义单元格中的按钮

在设置回收器项目单击侦听器时获取空指针异常

如何使用适配器处理项目中视图的单击侦听器?

如何处理项目单击侦听器上的行及其内部视图的RecyclerView

在点击侦听器上设置Android列表视图中的按钮

列表视图中单击的项目位置错误

从列表视图中单击项目开始动画

无法单击列表视图中的项目

ActionBar 项目单击侦听器不起作用

列表视图项单击侦听器不起作用

将侦听器设置为自定义视图

单击列表视图中的项目时显示视图

如何在轮播视图中设置列表视图所选项目为空

下拉列表中没有通过单击按钮在网格视图中添加新行的项目

自定义视图中的单击侦听器触发所有视图

将项目转移到新列表后,Angular CdkDrag 元素会丢失事件侦听器

如何在 Django 的新视图中显示单击的项目/图像?

单击某些列表视图中的项目时出错

单击按钮从自定义列表视图中删除项目

单击ArrayAdapter内的图像以删除列表视图中的项目