我正在尝试使用 listview 按钮从 cutomlistadapter 打开 Android Activity。我尽了最大努力,但没有结果?

Posted

技术标签:

【中文标题】我正在尝试使用 listview 按钮从 cutomlistadapter 打开 Android Activity。我尽了最大努力,但没有结果?【英文标题】:i am trying to open Android Activity from cutomlistadapter with listview buttons. i tried at mt best but no result? 【发布时间】:2018-04-14 12:14:57 【问题描述】:

我正在尝试使用列表视图按钮打开活动。这段代码没有错误,但活动没有打开。我尽我所能在谷歌上搜索,但没有任何帮助。

这里是 MainActivity

public class MainActivity extends AppCompatActivity 

    private static final String TAG = "MainActivity";
    private ListView listView;
    @Override
    protected void onCreate(Bundle savedInstanceState) 
        super.onCreate(savedInstanceState);
        setContentView(R.layout.listview_layout);
        listView = (ListView)findViewById(R.id.listView);


        final ArrayList<Card> list = new ArrayList<>();
        list.add(new com.enteruki.deeprelaxation.Card("drawable://"+R.drawable.uki,"Test one"));
        list.add(new com.enteruki.deeprelaxation.Card("drawable://"+R.drawable.beach1,"Beach"));
        list.add(new com.enteruki.deeprelaxation.Card("drawable://"+R.drawable.bonfire,"Bon Fire"));
        list.add(new com.enteruki.deeprelaxation.Card("drawable://"+R.drawable.forests1,"Forest"));
        list.add(new com.enteruki.deeprelaxation.Card("drawable://"+R.drawable.frogs,"Frogs"));
        list.add(new com.enteruki.deeprelaxation.Card("drawable://"+R.drawable.heavyrain,"Heavy Rain"));
        list.add(new com.enteruki.deeprelaxation.Card("drawable://"+R.drawable.insects,"Insects"));
        list.add(new com.enteruki.deeprelaxation.Card("drawable://"+R.drawable.lightning,"Lightning"));
        list.add(new com.enteruki.deeprelaxation.Card("drawable://"+R.drawable.underwater,"Under Water"));
        list.add(new com.enteruki.deeprelaxation.Card("drawable://"+R.drawable.windstrome,"Wind Storme"));

        CustomListAdapter adapter = new CustomListAdapter(this,R.layout.activity_main,list);
        listView.setAdapter(adapter);
        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() 
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) 
                if (position==0)
                        Intent intent = new Intent(view.getContext(), TestoneActivity.class);
                        startActivityForResult(intent,0);
                
                else if (position == 1)
                
                    Intent intent = new Intent(view.getContext(),BeachActivity.class);
                    startActivityForResult(intent,1);
                
            
        );

    

【问题讨论】:

你检查过onItemClick()方法是否被调用? 删除 if/else 并使用 startActivity(new Intent(view.getContext(), TestoneActivity.class))) 尝试一个干净的代码块 @pablopatarca 我总共有 9 个活动,我该如何打开这些活动。 我的建议是澄清这是上下文问题或 startActivityForResult() 方法的问题 @pablopatarca 我看不到这段代码有什么问题我重新检查了所有内容。我有列表视图,卡片内有卡片一个图像视图和一个文本视图和一个按钮。在那个列表视图中,我显示了 9 张卡片。所以这意味着每张卡本身都有一个按钮。我想在单击这些按钮时打开一个活动。我想用我放在列表视图中的按钮打开另一个活动。对不起我的英语不好 【参考方案1】:

您应该使用 Activity 上下文创建意图。因此,您需要更改以下内容:

Intent intent = new Intent(view.getContext(), TestoneActivity.class);
startActivityForResult(intent,0);

到:

Intent intent = new Intent(MainActivity.this, TestoneActivity.class);
startActivityForResult(intent,0);

【讨论】:

【参考方案2】:

您的代码仅适用于第一项和第二项。

if (position==0)
   // first               

else if (position == 1) 
  // second            

【讨论】:

以上是关于我正在尝试使用 listview 按钮从 cutomlistadapter 打开 Android Activity。我尽了最大努力,但没有结果?的主要内容,如果未能解决你的问题,请参考以下文章

从具有按钮的 ListView 获取列表项的位置

QML:使用 ListView.OverlayFooter 时页脚中的按钮无响应

我无法使用多个按钮将子项添加到 ListView

JSONArray 到 ListView - AsyncTask

如何从 Xamarin Forms ListView 中删除项目?

启动 ListView 类时应用程序强制关闭