2016-04-12 18 views
1

ボタンをクリックするたびに情報を保持する新しいテキストビューを作成したいと思います。テキストビューで別の画面に渡したいデータがありますが、新しいデータを置くたびに同じtextView(textview4)を使用するため、このデータを上書きします。ボタンをクリックするたびにデータを保持する新しいテキストビューを作成する方法があるかどうかを知りたい。私は、私が十分に分かりました、ありがとうと思います。onClickに基づいて別のアクティビティで新しいテキストビューを作成するandroid

このコードはCreateWorkout.Java

public void createNewWorkout (View view){ 
    TextView Exercise1TextView = (TextView) findViewById(R.id.Exercise1TextView); 
    EditText weightEntered = (EditText)findViewById(R.id.WeightLiftedEditText); 
    EditText reps = (EditText)findViewById(R.id.RepsEditText1); 
    EditText sets = (EditText)findViewById(R.id.setsEditText1); 

    Intent getWorkoutIntent = new Intent(this, SelectWorkout.class); 

    getWorkoutIntent.putExtra("Workout", Exercise1TextView.getText().toString() 
      + " " + weightEntered.getText().toString() + "kg" 
      + " " + reps.getText().toString() + " reps" 
      + " " + sets.getText().toString() + " sets"); 

    startActivity(getWorkoutIntent); 
} 

意図が呼び出された場合にこれはと呼ばれるクラスからのものです。これはSelectWorkout.Javaのものです

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.select_workout); 

    TextView textView4 = (TextView) findViewById(R.id.textView4); 
    textView4.setText(getIntent().getExtras().getString("Workout")); 
} 

ここで入力したデータを次の画面に取りたいと思っています。だから、運動名(レッグプレス)、重量(50)、(3)設定し、担当者(10) screenshot:

second screen

+0

オリジナルを上書きしないように、毎回新しいTextViewを作成する際に使用するカウンターが必要な場合があります。このようにすると、すべてが動的であることを忘れないでください。だから、アクティビティが終了したら、あなたはそれを持っていないでしょう – Eenvincible

+0

もっと説明できますか?私はまだアンドロイドを学ぼうとしています – Ryan159

+0

あなたの質問はあまり明確ではありません。あなたはコードに対応するファイル名を置くことができますか、それらはお互いにどのように接続されていますか?正確なフローを説明し、可能であればスクリーンショットを添付してください。 –

答えて

0

私のデータを保持するたびに、新しいテキストビューを作成します

正確な回答ではありませんが、正しい方向に導くはずです。あなたは、次のような何かを行うことができ:

  • は反復バンドル
  • が反復中Textviewsを作成し、select_workout
内部の主要なレイアウトのIDですが「 your_main_layout」それらを追加するには、バンドル
  • を取得します

    bundleは、Intentから送信する余分なデータです。この新しいインテントに送信した各アイテムを繰り返し処理しています。作成部分は、送信したアイテムごとにTextViewを作成することを意味します。私は以下で見つけたものへのリンクを提供しました。あなたがstrinのリストとしてSharedPreferences活動-1にあなたの文章を保存する場合はどう

    • Listing all extras of an Intent

      //Get a bundle: 
      for (String key : bundle.keySet()) { 
      // This is each value (text) you sent over from the last intent 
          Object value = bundle.get(key); 
      //output data to log, so you can see what prints out 
          Log.d(TAG, String.format("%s %s (%s)", key, value.toString(), value.getClass().getName())); 
      
      //adding a textview to a layout called your_main_layout (which can be a linear layout or something) 
      //with value.toString() as the text 
      your_main_layout.addView(createATextView(LayoutParams.WRAP_CONTENT, 
            LayoutParams.WRAP_CONTENT, RelativeLayout.ALIGN_PARENT_RIGHT, 
            value.toString(), 20, 10, 20)); 
      } 
      
    • How can I add a TextView to a LinearLayout dynamically in Android?

      //method to create view: 
      public TextView createATextView(int layout_widh, int layout_height, int align, 
      String text, int fontSize, int margin, int padding) { 
      
      TextView textView_item_name = new TextView(this); 
      
      // LayoutParams layoutParams = new LayoutParams(
      // LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 
      // layoutParams.gravity = Gravity.LEFT; 
      RelativeLayout.LayoutParams _params = new RelativeLayout.LayoutParams(
           layout_widh, layout_height); 
      
      _params.setMargins(margin, margin, margin, margin); 
      _params.addRule(align); 
      textView_item_name.setLayoutParams(_params); 
      
      textView_item_name.setText(text); 
      textView_item_name.setTextSize(TypedValue.COMPLEX_UNIT_SP, fontSize); 
      textView_item_name.setTextColor(Color.parseColor("#000000")); 
      // textView1.setBackgroundColor(0xff66ff66); // hex color 0xAARRGGBB 
      textView_item_name.setPadding(padding, padding, padding, padding); 
      
      return textView_item_name; 
      
      } 
      
  • +0

    あなたのコード – Ryan159

    +0

    を見ていただきありがとうございます。この部分の詳細については、バンドルの取得、繰り返し、作成をお考えください。私はそれを本当に理解していません。 – Ryan159

    +1

    'bundle'はあなたが' Intent'から送信している余分なデータです。 'Iterate'はあなたがこの新しいインテントに送った各アイテムを通過しています。' create'パーツはあなたが送信した各アイテムの 'textview'を作成することを指しています。 – Petro

    -1

    gs、Activity-2このリストをプルし、LinearLayoutなどのViewGroup要素でTextViewを作成/追加しますか?

    私はIntentを使ってテキストを渡すのは大丈夫だと思っていますが、少数のテキストを渡したいのであれば、それは悪い考えです。

    +0

    ありがとう私もこれを調べます – Ryan159

    関連する問題