1

我只是试图通过单击按钮触发新活动,但每次单击所述按钮时,我都会收到一条错误消息,提示“未找到源”,下方带有“编辑源查找路径”。这似乎是一个非常常见的问题,通常似乎与 OnClickListener 方法或未指向正确文件的源路径相关。

这是原始活动的文件:

    public class MainActivity extends Activity {

        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);

            Button btn = (Button) findViewById(R.id.homebutton2);
            btn.setOnClickListener(new View.OnClickListener(){
                public void onClick(View v) {
                    Intent intent = new Intent(v.getContext(), DisplayExplanation.class);
                    startActivityForResult(intent,0);   
                }
            });
        }

    }

我确信 OnClickListener 没有问题,因为如果我用 toast 替换意图,toast 看起来就好了。

我还重新启动了项目,以确保源路径是正确的;它指向正确的 .jar 文件和我的项目文件夹。API 也与清单中的内容相匹配。

为了完整起见,这是我试图打开的活动:

public class DisplayExplanation extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_display_explanation);
    }

}

我真的很感谢你能在这方面给我的任何帮助——好像我已经把头撞在墙上好几个小时了!

4

4 回答 4

3

利用

 Intent intent = new Intent(Current_Activity.this, DisplayExplanation.class);
                    startActivityForResult(intent,0); 

代替

Intent intent = new Intent(v.getContext(), DisplayExplanation.class);
                    startActivityForResult(intent,0);  

在按钮单击上启动新活动始终传递当前活动上下文而不是当前视图上下文,就像您传递启动活动的上下文一样

于 2012-11-23T09:37:32.540 回答
1

尝试这个...

Intent intent= new Intent(getApplicationContext(),DisplayExplanation.class);

    startActivity(intent);

代替...

Intent intent = new Intent(v.getContext(), DisplayExplanation.class);
                    startActivityForResult(intent,0);  
于 2012-11-23T10:25:27.633 回答
0

在下面找到正确的代码:

  public class MainActivity extends Activity {

            @Override
            public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_main);

                Button btn = (Button) findViewById(R.id.homebutton2);
                btn.setOnClickListener(new View.OnClickListener(){
                    public void onClick(View v) {
                        Intent intent = new Intent(v.getContext(), DisplayExplanation.class);
                        **startActivity(intent);**  
                    }
                });
            }

        }

你的错误是: startActivityForResult(intent,0);
但在这里你需要使用

开始活动(意图);

于 2012-11-23T09:50:36.140 回答
0

代替

Intent intent = new Intent(v.getContext(), DisplayExplanation.class);

Intent intent = new Intent(MainActivity.this, DisplayExplanation.class);
于 2012-11-23T09:37:09.813 回答