使用"这个"时出错显式意图创建中的关键字

时间:2015-09-26 14:20:17

标签: java android android-intent

我正在开发一些应用程序,在启动器屏幕中,如果我们检查一个单选按钮,它应该重定向到登录活动。

mainactivity.java类中,在为Implicit Intent类创建对象期间,使用this关键字获取当前上下文时显示错误。这是什么原因?我们还可以使用什么来获取Intent对象的上下文?

我在这里包含我的代码。

public class MainActivity extends ActionBarActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    final RadioGroup radiogroup = (RadioGroup) findViewById(R.id.radiogroup);
    radiogroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {

   @Override
   public void onCheckedChanged(RadioGroup group, int checkedId)
   {
   RadioButton checkedRadioButton = (RadioButton) findViewById(checkedId);
    int comp = checkedRadioButton.getId();

   if(comp==(R.id.Vitbutton))
       Intent i = new Intent(this ,LoginActivity.class);
       startActivity(i);

            }
      }
    );
}

5 个答案:

答案 0 :(得分:3)

变化:

Intent i = new Intent(this ,LoginActivity.class);

为:

Intent i = new Intent(MainActivity.this ,LoginActivity.class);

答案 1 :(得分:0)

您可以使用getApplicationContext()

  Intent i = new Intent(getApplicationContext(),LoginActivity.class);
       startActivity(i);

答案 2 :(得分:0)

所以你得到了一些关于在我面前做得更好的建议。但我想让你明白错误:

首先:当你将鼠标悬停在错误上时,你是否检查了Eclipse或AS的内容?它应该说“Intent类的构造函数不适用于与RadioGroup.OnCheckedChangeListener对象一起使用”

请记住,你在一个类定义中,“this”指的是你当前所在范围的类。那就是“RadioGroup.OnCheckedChangeListener” - 类

你可以通过Java中的“MainActivity.this”获得外部类实例的“this”引用

迎接

答案 3 :(得分:0)

这个用于引用这个被写入的对象。

您尝试在RadioGroup.OnCheckedChangeListener()接口的onCheckedChanged中创建新的Intent。

现在,您使用的costructor是Intent(Context packageContext,Class cls)但是当您在onCheckedChanged中使用 this 时,您正在引用该接口而不是包含它的Activity,为此你看到错误的原因。

因此,在这种情况下,您可以使用this.getApplicationContext()或this.getBaseContext()

答案 4 :(得分:0)

当您在匿名类中使用它时,您将获得该匿名类的引用,而不是主类的引用。

在这种情况下,当您使用“this”时,您将获得RadioGroup.OnCheckedChangeListener的参考,而不是MainActivity的参考(并且Intent需要MainActivity的参考)。

所以你可以用这种方式解决它:

Intent i = new Intent(MainActivity.this,LoginActivity.class);

问候。