按钮上的源未找到错误单击以更改活动

时间:2012-11-23 09:34:49

标签: android eclipse button android-intent

我只是试图通过点击按钮触发一个新活动,但每次我点击所述按钮时,我都会收到一条错误,说“找不到源”,下面是“编辑源查找路径”。这似乎是一个非常常见的问题,通常似乎与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替换intent,那么toast就好了。

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

为了完整性,这是我正在尝试打开的活动:

public class DisplayExplanation extends Activity {

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

}

我真的很感激你能给我的任何帮助 - 好像我几个小时都撞墙了!

4 个答案:

答案 0 :(得分:3)

使用

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

而不是

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

在按钮上启动新活动单击总是传递当前活动上下文而不是当前视图上下文,就像您正在传递上下文以启动活动

答案 1 :(得分:1)

试试这个......

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

    startActivity(intent);

而不是......

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

答案 2 :(得分:0)

替换

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

Intent intent = new Intent(MainActivity.this, DisplayExplanation.class);

答案 3 :(得分: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);
但在这里你需要使用

startActivity(意向);