基于onClick android在另一个活动中创建新的Textview

时间:2016-04-12 21:45:22

标签: android android-intent textview

我想创建一个新的textview来保存每次单击按钮时发送的信息。我有想要传递到textview中的另一个屏幕的数据,但每次我尝试放置新数据时都会覆盖此数据,因为它使用相同的textView(textview4)。我想知道是否有一种方法可以创建一个新的文本视图,以便在每次单击按钮时保存我的数据。我希望我很清楚,谢谢。

此代码来自名为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);
}

这是调用intent的地方。这来自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

1 个答案:

答案 0 :(得分:0)

  

每次创建一个新文本视图来保存我的数据

不是一个确切的答案,但这应该指导您朝着正确的方向前进。您可以执行以下操作:

  • 获取您的包
  • 迭代捆绑
  • 在迭代期间创建Textviews并将其添加到" your_main_layout"这是select_workout
  • 中主要布局的ID

bundle是您从Intent发送的额外数据。迭代将遍历您发送到此新意图的每个项目,创建部分指的是为您发送的每个项目创建TextView。我已经提供了我在下面找到的链接。

  • 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;
    
    }