0

私はこのインテントコードを持っています:

Intent arbeiten = new Intent(this, arbeiten.class);
startActivity(arbeiten);

しかし、Eclipseは私に言います:

The constructor Intent(new AdapterView.OnItemClickListener(){}, Class<arbeiten>) is undefined

同じプロジェクト内の他の (作業中の) インテントですが、他のクラスは次のように見えます

Intent toolb = new Intent(this, ToolBox.class);
toolb.putExtra("json", json.toString());
startActivity(toolb);

そして、彼らは働いています...

「Arbeiten」クラスは次のようになります。

package XXX;
import android.app.Activity;
import android.os.Bundle;

public class arbeiten extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
}
4

5 に答える 5

3

thisを参照しているためOnItemClickListenerです。これを解決するにはさまざまな方法があります。1 つの方法は、次のようにアクティビティのコンテキストへの参照を作成することです。

Context mContext;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    //your code

    mContext = this;
}

次に、これを次のOnClickListenerように変更します。

Intent arbeiten = new Intent(mContext, arbeiten.class);
startActivity(arbeiten);
于 2012-05-09T14:16:25.007 に答える
2

Intentエラー メッセージから、 内で fromを作成しているように見えますOnClickListener。を作成するにはIntent、 を渡す必要がありますContext。おそらく、次を使用してこれを実現できます。

Intent arbeiten = new Intent(NameOfYourActivity.this, arbeiten.class);
startActivity(arbeiten);

NameOfYourActivity(外部クラスはどこですか)

于 2012-05-09T14:17:36.333 に答える
1

これを試して:

startActivity(new Intent(getApplicationContext(), arbeiten.class))
于 2012-05-09T14:19:24.733 に答える
1

これは、リスナー内から呼び出しているためです。this「外部」アクティビティではなく、リスナーを参照します。試してみてください:

Intent arbeiten = new Intent(YourClassName.this, arbeiten.class);
startActivity(arbeiten);
于 2012-05-09T14:16:45.310 に答える
0

まず最初に、ローカル オブジェクトの別の名前を選択しますが、それ以外は任意です。次に、正しい「this」を呼び出していることを確認してください。次に例を示します。

Intent intent = new Intent(YourCurrentActivity.this, arbeiten.class);
startActivity(intent); 
于 2012-05-09T14:21:37.360 に答える