【发布时间】:2017-04-20 12:14:06
【问题描述】:
这是我的 MainActivity.java
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button bt=(Button) findViewById(R.id.bt);
bt.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v) {
Intent i=new Intent(MainActivity.this,SecondAcitvity.class);
EditText et=(EditText) findViewById(R.id.et);
String text=et.getText().toString();
i.putExtra("name",text);
startActivity(i);
}
});
}
}
这是我的 SecondActivity.java
import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.widget.TextView;
public class SecondAcitvity extends AppCompatActivity {
@Override
protected void onCreate( Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
TextView tv = (TextView) findViewById(R.id.tv);
Intent i=getIntent();
Bundle b=i.getExtras();
if(b!=null)
{
String name=(String)b.get("name");
tv.setText(name);
}
}
}
我在使用什么
Intent i=new Intent(MainActivity.this,SecondAcitvity.class);
然后代码运行良好
但是当我使用时
Intent i=new Intent(this,SecondAcitvity.class);
然后它给出错误。
无法解析构造函数
Intent(匿名 android.view.View.onClickListener,java.lang.Class{com.example.intents.SecondActivity})`
为什么会这样?
【问题讨论】:
-
您实际上遇到了什么错误
-
在
OnClickListener内部,this指的是OnClickListener,它不是Context,这是Intent构造函数所期望的。 -
因为你是在
View.OnClickListener接口,所以如果你使用this,说明你调用的是这个接口,而不是MainActivity