Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.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
Android 从edittext中获取值并将其作为字符串传递给另一个活动_Android_Eclipse_String_Android Intent_Android Activity - Fatal编程技术网

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)通过这种方式,意图与捆绑数据一起发送。