【问题标题】:Android - Intent within ListViewAndroid - ListView 中的意图
【发布时间】:2023-03-21 23:34:01
【问题描述】:

我无法在我的列表视图中创建意图。它给出了一个错误“无法实例化 活动 ComponentInfo" 并由 Classcastexception 引起。这里是 sn-p -

lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position,
                long id) {

Intent myIntent = new Intent(view.getContext(), Vol.class);
startActivityForResult(myIntent, 0);

        }});

这是造成问题的代码部分 -

Intent myIntent = new Intent(view.getContext(), Vol.class);
startActivityForResult(myIntent, 0);

我不明白为什么它会给出 ClassCastException。请帮忙。谢谢!

【问题讨论】:

  • 请将 view.getContext() 更改为 ClassName.this
  • 我做到了。还是不行。还有什么建议吗?我真的很感激。

标签: android android-listview android-intent


【解决方案1】:

尝试举办这样的活动

@Override
    public void onItemClick(AdapterView<?> a, View v, int position, long id) {
         if(position==0){
             Intent i = new Intent(this, abc.class);
             startActivity(i);

        } else if(position==1){
             Intent i = new Intent(this, xyz.class);
             startActivity(i);

        }

    }

【讨论】:

    【解决方案2】:
    Intent myIntent = new Intent(yourActivity.this, Vol.class);
    startActivityForResult(myIntent, 0);
    

    【讨论】:

    • 还是不行。你的活动是指包含此代码的类吗?
    • 该类扩展了 ListActivity,因为这个活动是一个 ListView。
    • 也可以。用你的类名代替你的Activity
    • 是的。我已经在清单中声明了 Vol 活动。为什么会出现 ClassCastException?
    【解决方案3】:

    尝试像这样传递它,

    lv.setOnItemClickListener(new OnItemClickListener() {
    public void onItemClick(AdapterView<?> parent, View view, int position,
                    long id) {
    
    Intent myIntent = new Intent(view.getContext(), Vol.class);
    view.getContext().startActivityForResult(myIntent, 0);
    
            }});
    

    这可能是因为上下文问题。如果

     view.getContext().startActivityForResult(myIntent, 0);
    

    不起作用,请尝试为 startActivityForResult(myIntent, 0); 传递不同的上下文。

    【讨论】:

    • 没用。 “尝试为 startActivityForResult(myIntent, 0); 传递不同的上下文”是什么意思? ?
    • 不要传递 view.getContext(),而是尝试传递你父母的上下文或应用程序上下文。我不确定。
    • 很抱歉,我无法理解您的意思。如果你能准确地告诉我......谢谢!
    • 你能告诉我你在哪一行得到这个错误
    • 代码运行良好,没有以下内容。我可以看到列表视图。我什至尝试在该列表视图上显示吐司消息并且它有效。现在,当我选择列表中的任何内容时,我想开始一个新的意图。意图 myIntent = new Intent(view.getContext(), Vol.class); startActivityForResult(myIntent, 0);
    【解决方案4】:

    简单

    this.startActivityForResult(myIntent, 0);
    

    ?

    并且不要忘记在标签中的 AndroidManifest.xml 中注册您的活动..

    喜欢:

    <activity: android:name=".ExampleActivity" android:label="My ExampleActivity!" />
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多