Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/200.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android OnClickListener、意图和上下文_Java_Android_This_Onclicklistener_Android Context - Fatal编程技术网

Java Android OnClickListener、意图和上下文

Java Android OnClickListener、意图和上下文,java,android,this,onclicklistener,android-context,Java,Android,This,Onclicklistener,Android Context,我不熟悉java和android。在这里,我试图设置我的onclicklistener,这样当单击时,它将显示另一个活动,即ActivityB.class。问题在于Intent i=newintent(context,ActivityB.class)我不确定要在那里放置什么内容上下文。我试图使用这个和上下文,但两者都是错误的 请您解释一下我应该在什么时候以及为什么使用这个,以及什么时候在上下文中使用其他术语 public class MainActivity extends Activity {

我不熟悉java和android。在这里,我试图设置我的onclicklistener,这样当单击时,它将显示另一个活动,即ActivityB.class。问题在于
Intent i=newintent(context,ActivityB.class)我不确定要在那里放置什么内容
上下文
。我试图使用
这个
上下文
,但两者都是错误的

请您解释一下我应该在什么时候以及为什么使用
这个
,以及什么时候在
上下文中使用其他术语

public class MainActivity extends Activity {

Button b;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    b = (Button) findViewById(R.id.button1);

    b.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            Intent i = new Intent(context, ActivityB.class);
            startActivity(i);
            }
        }); 

}
将代码更改为

b.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        Intent i = new Intent(MainActivity.this, ActivityB.class);
        startActivity(i);
        }
    }); 
因为您需要在使用intent时传递上下文。

将代码更改为

b.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        Intent i = new Intent(MainActivity.this, ActivityB.class);
        startActivity(i);
        }
    }); 
因为您需要在使用intent时传递上下文。

试试这个

如果您在清单中声明
ActivityB.class
,这应该可以工作

Intent i = new Intent(MainActivity.this, ActivityB.class);
startActivity(i);
试试这个

如果您在清单中声明
ActivityB.class
,这应该可以工作

Intent i = new Intent(MainActivity.this, ActivityB.class);
startActivity(i);
最快的方法! 希望有帮助!:D

Intent i = new Intent(this, ActivityB.class);
startActivity(i);
最快的方法! 希望有帮助!:D

1)用getApplicationContext()替换上下文

Intent i = new Intent(this, ActivityB.class);
startActivity(i);
2) 将上下文替换为MainActivity.this

button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
  Intent intent = new Intent(MainActivity.this,ActivityB.class);

           startActivity(intent);

    }
}); 
希望它能帮助你

1)用getApplicationContext()替换上下文

2) 将上下文替换为MainActivity.this

button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
  Intent intent = new Intent(MainActivity.this,ActivityB.class);

           startActivity(intent);

    }
}); 

希望它能帮助你

谢谢!它工作得很好。我似乎能够使用getApplicationContext()并且仍然可以工作。MainActivity.this和getApplicationContext()之间有什么区别?再次感谢@JeffLam在stackoverflow上搜索CommonWarether对此有一个很好的解释,Android中有两种类型的上下文。活动上下文和应用程序上下文。如果您没有活动上下文,那么应用程序上下文应该很有用。谢谢!它工作得很好。我似乎能够使用getApplicationContext()并且仍然可以工作。MainActivity.this和getApplicationContext()之间有什么区别?再次感谢@JeffLam在stackoverflow上搜索CommonWarether对此有一个很好的解释,Android中有两种类型的上下文。活动上下文和应用程序上下文。如果您没有活动上下文,那么应用程序上下文应该是有用的。