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. 有不同的方法来解决这个问题。一种方法是像这样引用活动的上下文:

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

从错误消息来看,您似乎是IntentOnClickListener. 要创建Intent,您必须通过Context. 您可以使用以下方法实现此目的:

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

(外部类在哪里NameOfYourActivity

于 2012-05-09T14:17:36.333 回答
1

这是因为您是从侦听器内部调用它,所以this引用侦听器而不是“外部”活动。尝试:

Intent arbeiten = new Intent(YourClassName.this, arbeiten.class);
startActivity(arbeiten);
于 2012-05-09T14:16:45.310 回答
1

试试这个:

startActivity(new Intent(getApplicationContext(), arbeiten.class))
于 2012-05-09T14:19:24.733 回答
0

首先为您的本地对象选择一些不同的名称,除了 arbeiten,并确保您调用正确的“this”,例如:

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