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に問題はないと確信しています。

また、ソースパスが正しいことを完全に確認するために、プロジェクトを再開しました。正しい.jarファイルと私のプロジェクトフォルダを指しています。APIはマニフェストの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

交換

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

Intent intent = new Intent(MainActivity.this, DisplayExplanation.class);
于 2012-11-23T09:37:09.813 に答える
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(intent);

于 2012-11-23T09:50:36.140 に答える