1. ホーム
  2. android

[解決済み】Android Intent コンストラクタを解決できない

2022-01-26 22:28:03

質問

Fragmentを継承した1つ目のクラスと、Activityを継承した2つ目のクラスがあります。

Fragmentは正常に動作しており、Fragment内のIntentのコードは以下の通りです。

ImageButton button= (ImageButton) getView().findViewById(R.id.button);
    button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent myIntent = new Intent(MyFragment.this, MyClass.class);
            MyFragment.this.startActivity(myIntent);            }
    });

私のクラスMyClassのコードは:

public class MyClass extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // The activity is being created.
    }

    @Override
    protected void onStart() {
        super.onStart();

        setContentView(R.layout.MyClass);
    } 
}

エラーは:

Gradle: cannot find symbol constructor Intent(com.xxxx.xxxx.MyFragment,java.lang.Class<com.xxxx.xxxx.MyClass>)

どこで間違えたのかわからない。

どうすればいい?

使用方法

Intent myIntent = new Intent(v.getContext(), MyClass.class);

または

 Intent myIntent = new Intent(MyFragment.this.getActivity(), MyClass.class);

をクリックすると、新しいアクティビティが開始されます。これは、アプリケーションの特定のコンポーネントのIntentを作成するときに、Intentコンストラクタの最初のパラメータとして、アプリケーションまたはコンポーネントコンテキストを渡す必要があるためです。