我是Android编程的新手,我想在 MainActivity 中创建需要用户输入的Android应用,然后在另一个活动中显示用户名。我计划再创建5个活动来显示用户名。 这是 MainActivity :
public class MainActivity extends AppCompatActivity {
Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = (Button) findViewById(R.id.start);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(MainActivity.this, Quiz1Activity.class);
getMenuInflater().toString();
sendName();
startActivity(intent);
}});
}
public void sendName(){
Intent intent = new Intent(MainActivity.this, Quiz1Activity.class);
EditText inputnama = (EditText) findViewById(R.id.inputnama);
intent.putExtra("username", message);
}
这是new1Activity
Intent username = getIntent();
String username1 = getIntent().getStringExtra("username1");
我将相同的代码用于另一个新活动,但它没有显示任何内容。 任何人都可以向我解释什么是错的?
答案 0 :(得分:0)
在Intent中存储值;
Intent intent = new Intent(MainActivity.this, Quiz1Activity.class);
EditText inputnama = (EditText) findViewById(R.id.inputnama);
intent.putExtra("username", inputnama.getText().toString() );
使用Intent获取值;
String username1 = getIntent().getStringExtra("username");
答案 1 :(得分:0)
如果我正确理解了这个问题,那么在开始您的活动时需要这样做:
Intent intent = new Intent();
intent.putExtra("userName", userName);
startActivity(intent);
并在新活动中获取名称:
getIntent().getExtras().getString("userName");
答案 2 :(得分:0)
使用此clicklistener。
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new
Intent(MainActivity.this,Quiz1Activity.class);
getMenuInflater().toString();
EditText inputnama = (EditText) findViewById(R.id.inputnama);
intent.putExtra("username", inputnama.getText().toString());
startActivity(intent);
}});
答案 3 :(得分:0)
EditText inputName = (EditText) findViewById(R.id.inputnama);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(inputName != null){
String message = inputName.getText().toString();
SharedPreferences sharedPreferences = getSharedPreferences("prefName", 0);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString("username", message);
editor.apply();
editor.commit();
startActivity(new Intent(MainActivity.this, Quiz1Activity.class);
}
}});
在QuizActivity和其他活动中
SharedPreferences sharedPreferences = getSharedPreferences("prefName", 0);
String userName = sharedPreferences.getString("username", "");
答案 4 :(得分:0)
在onClick
方法中,您声明:
Intent intent = new Intent(MainActivity.this, Quiz1Activity.class);
。
然后在sendName()
中,你有:
Intent intent = new Intent(MainActivity.this, Quiz1Activity.class);
。
你应该明白这两个意图不一样,它们是两个不同的对象。对一个的修改不会影响另一个。
因此intent
中的onClick
未被修改。您要做的是从sendName
返回修改后的意图,例如startIntent(sendName());
。
此外,您只需将intent
作为sendName
中的参数传递。