簡體   English   中英

Android Studio中的意圖問題

[英]Trouble with Intent in Android Studio

我一直在嘗試為我的項目獲取從一個Java類到另一個Java類的字符串。 我一直在嘗試的代碼無法正常工作。 當我按下按鈕時,我知道它會打開另一個Java類,因為它會創建另一個布局,但不會顯示字符串。 請幫我。

第一個Java類:

public class MainActivity extends AppCompatActivity {

private Button button;
Context context;
private EditText editText;
String number = null;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    context = this;

    editText = (EditText) findViewById(R.id.editText);
    button = (Button) findViewById(R.id.button);
    button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (editText.getText().toString() != null) {
                String value = "value";
                Intent secondscreenIntent = new Intent(context, SecondScreenJ.class);
                secondscreenIntent.putExtra("Number", editText.getText().toString());
                startActivity(secondscreenIntent);


            }
        }
    });
}
}

第二個Java類:

public class SecondScreenJ extends Activity {

String number = null;
private TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.secondscreen);

    textView = (TextView) findViewById(R.id.textView);

    Bundle extras = getIntent().getExtras();
    if (extras != null){
        number = extras.getString("number");
    }

    textView.setText(number);

}


}

您將“ Number”作為關鍵字,但是在第二個活動中,您嘗試檢索“ number”,因此將number更改為Number即可使用。 區分大小寫。

不要以這種方式對您的密鑰進行硬編碼。 只需在MainActivity中聲明公共靜態變量,然后從SecondScreenJ中使用它即可

public class MainActivity extends AppCompatActivity {

private Button button;
Context context;
private EditText editText;
public static String NUMBER_KEY = "Number";
String number = null;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

context = this;

editText = (EditText) findViewById(R.id.editText);
button = (Button) findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        if (editText.getText().toString() != null) {
            String value = "value";
            Intent secondscreenIntent = new Intent(context, SecondScreenJ.class);
            secondscreenIntent.putExtra(NUMBER_KEY , editText.getText().toString());
            startActivity(secondscreenIntent);


        }
    }
});
 }
 }

第二個Java類:

public class SecondScreenJ extends Activity {

String number = null;
private TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.secondscreen);

 textView = (TextView) findViewById(R.id.textView);

 Bundle extras = getIntent().getExtras();
 if (extras != null){
    number = extras.getString(MainActivity.NUMBER_KEY);
 }

 textView.setText(number);

 }


}

當使用鑰匙放置和拿取額外物品時要當心。 他們區分大小寫。 替換"number""Number"在你的第二個活動。

暫無
暫無

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

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