Java 将编辑文本传递给新活动
我的Java 将编辑文本传递给新活动,java,android,Java,Android,我的主活动.xmlEditText中有一个按钮 在编辑文本中,我插入一个名称,单击按钮后,将显示一个具有新布局的新活动 现在,我想在我的新活动中使用EditText中的值(hiscores.xml),但是应用程序崩溃了 我的主要活动如下: package com.example.test; import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundl
主活动.xml
EditText
中有一个按钮
在编辑文本
中,我插入一个名称,单击按钮
后,将显示一个具有新布局的新活动
现在,我想在我的新活动中使用EditText中的值(hiscores.xml
),但是应用程序崩溃了
我的主要活动如下:
package com.example.test;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class MainActivity extends AppCompatActivity {
private Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.opening_screen);
button = findViewById(R.id.continue_button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
openHiScore();
}
});
}
public void openHiScore(){
Intent intent = new Intent(this,HiScore.class);
startActivity(intent);
}
}
然后,在他的核心代码是
package com.example.test;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.EditText;
public class HiScore extends AppCompatActivity {
EditText Name= (EditText)findViewById(R.id.username_text);
String UserName = Name.getText().toString();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.hiscore);
}
}
如何正确获取插入到EditText
中的值,以便在字符串UserName
中使用它
谢谢大家! 使用bundle将数据从一个活动发送到另一个活动。将数据存储到bundle中,并创建放置额外bundle的意图,以便传递数据
public void openHiScore(){
Intent intent = new Intent(this,HiScore.class);
Bundle b = new Bundle();
b.putString("name", editText.getText().toString());
intent.putExtras(b)
startActivity(intent);
}
In the HiScore class extract the data from the Bundle.
public class HiScore extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.hiscore);
Intent in = getIntent();
// get the Bundle that stores the data of this Activity
Bundle b = in.getExtras();
// getting data from bundle
String name = b.getString("name");
}
}
要将数据从一个活动传递到另一个活动,您需要将数据作为额外的添加到您的
意图
public void openHiScore(){
Intent intent = new Intent(this,HiScore.class);
intent.putExtra("NAME_INPUT",nameString)
startActivity(intent);
}
然后,在接收活动中,您需要从意图中检索名称:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.hiscore);
String name = getIntent().getStringExtra("NAME_INPUT");
}
使用bundle将值从一个活动传递到另一个活动,请参见此处使用bundle
或Intent
的putXX()
传递数据,以及每当出现异常相关问题时,发布stacktrace