1
final Button OptButton = (Button) findViewById(R.id.OptButton);
        OptButton.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                Intent OptionsSc = new Intent(this, OptionsActivity.class);
                startActivity (OptionsSc);
            }
        });

Eclipse 不断强调该new Intent(this, OptionsActivity.class);部分,我不明白为什么。以前,对 OptionsActivity 的调用被分配给硬件搜索按钮,一切正常。

4

5 回答 5

6

在您的情况下this,它不是指有效的Context(就像您this在 an 中使用时一样Activity),而是指匿名内部类类(方法声明OnCLickListener在哪里)。onClick相反,您应该使用:

Intent OptionsSc = new Intent(YourActivityName.this, OptionsActivity.class);
于 2012-05-30T13:07:55.837 回答
1

这是因为您在 onClickListener中,并且您this指的是当前类的对象,这里使用 getApplicationcontext 或 YourActivityName.this

这应该可以解决您的问题:)

于 2012-05-30T13:09:36.757 回答
1

在您的按钮单击侦听器中编写以下代码...

  Intent intent = new Intent (Main.this,Second.class);
  StartActivity(intent);
于 2012-05-30T13:09:49.700 回答
0

尝试任何一种这样的,

 Intent OptionsSc = new Intent(YourActivity.this, OptionsActivity.class);
                startActivity (OptionsSc);

或者

startActivity(new Intent(YourActivity.this, OptionsActivity.class));    
于 2012-05-30T13:10:53.053 回答
0

你可以这样使用;

Context c= MyActivityName.this;
Intent OptionsSc = new Intent(c, OptionsActivity.class);
于 2012-05-30T13:22:57.230 回答