将编辑文本分发给许多TextView

时间:2017-08-09 09:48:04

标签: java android

我是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");

我将相同的代码用于另一个新活动,但它没有显示任何内容。 任何人都可以向我解释什么是错的?

5 个答案:

答案 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中的参数传递。