2012-05-09 12 views
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" -Classは次のようになります。

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); 
    } 
} 
+0

インテントを取り巻くコードは何ですか? – Tushar

+0

「ケース2:中断」内のスイッチです。 – Styler2go

+0

インテントクラス? http://developer.android.com/reference/android/content/Intent.html – Styler2go

答えて

3

thisがあなたのOnItemClickListenerを参照するので、それはあります。これを解決するさまざまな方法があります。 、あなたのOnClickListenerに続いて

Context mContext; 

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

    mContext = this; 
} 

このように変更します。:一つの方法は、このような活動のコンテキストへの参照を作ることです

Intent arbeiten = new Intent(mContext, arbeiten.class); 
startActivity(arbeiten); 
+0

ありがとう!愚かな私... – Styler2go

+1

IMHO 'CustomUserClassName.this'でクラス参照を渡す方が簡単です。これはまた、追加された変数を避けるでしょう – Shine

+0

はい、あなたはおそらく正しいと思います。私は通常、何かのために文脈を必要とするので、習慣からそのようにしてください。 –

1

あなたの中からそれを呼び出しているためですリスナーであるため、thisはリスナーを参照し、「外部」アクティビティは参照しません。試してみてください:あなたはOnClickListener内からIntentを作成しているよう

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

エラーメッセージから、それが見えます。 Intentを作成するには、Contextを渡す必要があります。あなたは、おそらく使用してこれを達成することができます

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

NameOfYourActivityが外部クラスである場合は)

1

これを試してみてください:

startActivity(new Intent(getApplicationContext(), arbeiten.class)) 
0

すべての最初は、その後除き、ローカルのオブジェクトのいくつかの別の名前を選択しますあなたが正しいものを「this」と呼んでいることを確認してください。例:

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