0

以前にこの質問をしましたが、何が起こっているのかを説明する代わりに、あなたならどうするかをお尋ねします。

私の目標:

私は2つの画面を持っています。

画面 1:
(textview) --> 「お気に入りの数字
を選択してください」 (スピナー) --> 選択する数字のリストをドロップダウンします
(btnGo) --> 新しいインテントを開始し、画面 2 に変わります

画面 2:
"あなたのお気に入りの数字は:(スピナーで選択したものは何でも)"

さまざまな方法を試しましたが、画面が変わった後、スピナーから情報を取得できません。

それで、あなたはこれをどのようにしますか?できるだけ詳しくお願いします。

4

5 に答える 5

0

あなたはあなたの「スクリーン」が何であるかを説明していないので、私はそれらが活動であると仮定するつもりです。

あるアクティビティから別のアクティビティにデータを渡したい場合は、2番目のアクティビティを呼び出したアクティビティを逆参照するのではなく、インテントの一部として必要なデータを2番目のアクティビティに渡す必要があります。

例えば:

myIntent.putExtra("spinnerValue", spinner.getIndex()); 

2番目のアクティビティでは、データを読み取ることができます。

int spinnerValue = getIntent().getExtras().getInt("spinnerValue");
于 2012-09-17T06:50:35.527 に答える
0
    your_spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {

    public void onItemSelected(AdapterView<?> adapter, View v, int i, long lng) {

    selected_number = adapter.getItemAtPosition(i).toString();
    }
    }

Intent intent = new Intent(screen1.this, screen2.class);
intent.putExtra("selectedNumber", selected_number);
startActivity(intent);

Screen2 で:

String number = this.getIntent.getExtras("selectedNumber");

your_textView.setText(number);
于 2012-09-17T06:52:29.980 に答える
0

基本的に、SCREEN2 を呼び出すと、保存したすべてのデータを削除する新しいインテントを実行すると思います。

あなたがすべきことは、共有設定を使用することですここにチュートリアルがあります

または、btnGO をクリックすると、スピナーとボタンを含む最初のレイアウトを非表示にし、テキストを含む新しいレイアウトを表示するように、最初のレイアウトをvisibleとして、もう 1つのレイアウトを として 2 つのレイアウトを作成できます。invisible

編集:

最初に (textview) (spinner) (btnGo) に LinearLayout などの別のレイアウトがあることを確認してから、別のレイアウトを Your favorite number is:(whatever you selected on the spinner)" に配置し、それらを 1 つの xml ファイルにのみ配置するか、または<include />別のxmlファイルにそれらがあり、ボタンクリックを実行したときの可視性を設定する場合に使用できます

spinner.setVisibility(View.INVISIBLE); 
btnGo.setVisibility(View.INVISIBLE); 
textView.setVisibility(View.INVISIBLE); 

"Your favorite number is:(whatever you selected on thespinner)".setVisibility(View.VISIBLE);

あなたはその考えを正しく理解していますか?

于 2012-09-17T06:53:36.210 に答える
0

次のように使用できます。

Screen-1 のボタン クリック:

Intent intent = new Intent(getApplicationContext(),SCREEN2.class);
intent.putExtra("favoriteNumber",GET_SELECTED_SPINNER);
startActivity(intent);

画面 2 の onCreate():

String selectedFavorite = getIntent().getStringExtra("favoriteNumber");
YOUR_TEXTVIEW.setText(selectedFavorite);

それだ。

それがあなたのために働くことを願っています。

于 2012-09-17T06:53:48.860 に答える
0

//screen1 ボタンイベント内

Screen2 sc2 = 新しい Screen2();

sc2. セット (3);

// **

//Screen2 クラス

クラス Screen2 {

  private int i;
  public int Get(){
  return i;

   public void Set( int a )
   this.i = a;

}

于 2012-09-17T07:07:57.983 に答える