Android 从edittext中获取值并将其作为字符串传递给另一个活动
我希望从Android 从edittext中获取值并将其作为字符串传递给另一个活动,android,eclipse,string,android-intent,android-activity,Android,Eclipse,String,Android Intent,Android Activity,我希望从edittext字段中获取值,并将其作为字符串传递给另一个活动。我已经做了如下所示。我认为这是可行的,但我希望能够打印出文本,看看变量值是否真的传递了 但是一旦我输入Log.d(“PJM”,value)活动关闭时出错 主屏幕活动 public class MainScreen extends Activity { Button btnSearch, btnFavourites; EditText enterDefinition; Editable word; protected vo
edittext
字段中获取值,并将其作为字符串传递给另一个活动。我已经做了如下所示。我认为这是可行的,但我希望能够打印出文本,看看变量值是否真的传递了
但是一旦我输入Log.d(“PJM”,value)代码>活动关闭时出错
主屏幕活动
public class MainScreen extends Activity {
Button btnSearch, btnFavourites;
EditText enterDefinition;
Editable word;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main_screen);
btnSearch=(Button)findViewById(R.id.btnSearch);
btnFavourites=(Button)findViewById(R.id.btnFavourites);
enterDefinition=(EditText)findViewById(R.id.enterDefinition);
String text = enterDefinition.getText().toString();
Intent i = new Intent(this, Definition.class);
i.putExtra("KEY",text);
//startActivity(i);
//Intent i = new Intent(this, Definition.class);
//i.putExtra("text_Label",theText);
//startActivity(i);
public class Definition extends Activity {
Button btnSend, btnSaveFave, btnReturn;
EditText enterDefinition;
String value;
TextView definition;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_definition);
btnSend=(Button)findViewById(R.id.btnSend);
btnSaveFave=(Button)findViewById(R.id.btnSaveFave);
btnReturn=(Button)findViewById(R.id.btnReturn);
enterDefinition=(EditText)findViewById(R.id.enterDefinition);
definition=(TextView)findViewById(R.id.tvDefinition);
definition.setText("some text");
Bundle extras = getIntent().getExtras();
String value = null;
if (extras != null) {
value = extras.getString("KEY");
}
else {
value = "None";
}
Log.d("text entered", value);
Toast.makeText(getBaseContext(), value, Toast.LENGTH_LONG).show();
定义活动
public class MainScreen extends Activity {
Button btnSearch, btnFavourites;
EditText enterDefinition;
Editable word;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main_screen);
btnSearch=(Button)findViewById(R.id.btnSearch);
btnFavourites=(Button)findViewById(R.id.btnFavourites);
enterDefinition=(EditText)findViewById(R.id.enterDefinition);
String text = enterDefinition.getText().toString();
Intent i = new Intent(this, Definition.class);
i.putExtra("KEY",text);
//startActivity(i);
//Intent i = new Intent(this, Definition.class);
//i.putExtra("text_Label",theText);
//startActivity(i);
public class Definition extends Activity {
Button btnSend, btnSaveFave, btnReturn;
EditText enterDefinition;
String value;
TextView definition;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_definition);
btnSend=(Button)findViewById(R.id.btnSend);
btnSaveFave=(Button)findViewById(R.id.btnSaveFave);
btnReturn=(Button)findViewById(R.id.btnReturn);
enterDefinition=(EditText)findViewById(R.id.enterDefinition);
definition=(TextView)findViewById(R.id.tvDefinition);
definition.setText("some text");
Bundle extras = getIntent().getExtras();
String value = null;
if (extras != null) {
value = extras.getString("KEY");
}
else {
value = "None";
}
Log.d("text entered", value);
Toast.makeText(getBaseContext(), value, Toast.LENGTH_LONG).show();
你想要:
String value = null;
if (extras != null) {
value = extras.getString("KEY");
}
else {
value = "None"
}
Log.d("PJM", value);
这将有助于您在清单中声明Definition.class??是的,它在清单中声明,每次我运行它时,它在日志中都显示为none?我假设您错误地注释掉了startActivity(I)?否,因为如果我取消注释它,它只是直接启动“定义活动”,而没有给我在“主屏幕”中键入“editText”的机会好吧,那么捆绑包就有问题了。你能发布完整的代码吗?在第一个活动中,你肯定会称之为startActivity(我)吗?事实上,甚至更好。在调试模式下运行,在第二个活动中的if语句处放置断点,并将鼠标指针悬停在变量上检查附加的内容。请看我在第一个问题中编辑的代码,我没有启动活动,因为这意味着一旦启动我的应用程序,它将直接运行到定义活动中。我应该把代码传递给onClickListener来运行那个活动吗?是的,我就是这么想的。那么,在这个过程中,我使用了什么样的意图呢?在您发布的代码中,它是完全冗余的。当然,如果您有一个按钮单击的侦听器,然后启动定义活动,那么您必须将意图放在其onClick方法中,并从其中调用startActivity(i)通过这种方式,意图与捆绑数据一起发送。