簡體   English   中英

將編輯文本分發到許多TextView

[英]Distribute an edit text to many TextViews

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

我對另一個新活動使用了相同的代碼,但未顯示任何內容。 誰能向我解釋怎么了?

將值存儲在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");

如果我正確理解了問題,那么在開始活動時就需要這樣做:

Intent intent = new Intent();
intent.putExtra("userName", userName);
startActivity(intent);

並在新活動中獲取名稱:

getIntent().getExtras().getString("userName");

使用此點擊偵聽器。

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);
            }});
 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", "");

onClick方法中,您聲明:

Intent intent = new Intent(MainActivity.this, Quiz1Activity.class);

然后在sendName() ,您有:

Intent intent = new Intent(MainActivity.this, Quiz1Activity.class);

您應該了解這兩個意圖是不相同的,它們是兩個不同的對象。 對一個的修改不會影響另一個。

因此,您對onClickintent沒有被修改。 您要做的是從sendName返回修改后的intent,類似於startIntent(sendName());

另外,您可以將intent作為參數傳遞給sendName

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM