android-通过单击不同页面上的按钮(多次)将textView对象附加到线性布局中
我有两项活动。活动1旨在接收用户输入(EditText),并且有一个按钮(如果单击)将转到活动2。在活动2中,有一个线性布局和一个按钮,可将您带回活动1。目前,我可以将一个textView(包含活动1中的用户输入)添加到活动2中的LinearLayout,但我想将几个textView对象添加到LinearLayout。当我尝试在第一次输入后的任何时间添加用户输入时,它只是替换保存第一次输入的用户输入信息的textView对象 来自活动1(附录练习):android-通过单击不同页面上的按钮(多次)将textView对象附加到线性布局中,android,android-layout,android-fragments,android-intent,android-activity,Android,Android Layout,Android Fragments,Android Intent,Android Activity,我有两项活动。活动1旨在接收用户输入(EditText),并且有一个按钮(如果单击)将转到活动2。在活动2中,有一个线性布局和一个按钮,可将您带回活动1。目前,我可以将一个textView(包含活动1中的用户输入)添加到活动2中的LinearLayout,但我想将几个textView对象添加到LinearLayout。当我尝试在第一次输入后的任何时间添加用户输入时,它只是替换保存第一次输入的用户输入信息的textView对象 来自活动1(附录练习): public class AddExerci
public class AddExercise extends AppCompatActivity {
private EditText name;
private EditText weight;
private EditText sets;
private EditText reps;
private String deets;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_add_exercise);
Button button = (Button) findViewById(R.id.button5);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
goToAddWorkout();
}
});
}
private void goToAddWorkout() {
Intent intent = new Intent(this, AddWorkout.class);
name = (EditText) findViewById(R.id.name);
weight = (EditText) findViewById(R.id.weight);
sets = (EditText) findViewById(R.id.sets);
reps = (EditText) findViewById(R.id.reps);
deets = name.getText().toString() + "\n\t\tWeight: " + weight.getText().toString() + "\n\t\tSets: " + sets.getText().toString() + "\n\t\tReps: " + reps.getText().toString();
intent.putExtra("details", deets);
startActivity(intent);
}
}
public class AddWorkout extends AppCompactActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_add_workout);
LinearLayout vBox = (LinearLayout) findViewById(R.id.vBox);
Bundle extras = getIntent().getExtras();
if (extras != null) {
TextView tv = new TextView(this);
tv.setText(extras.getString("details").toString());
vBox.addView(tv);
}
Button button = (Button) findViewById(R.id.button3);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
goToAddExercise();
}
});
}
}
来自活动2(添加训练):
public class AddExercise extends AppCompatActivity {
private EditText name;
private EditText weight;
private EditText sets;
private EditText reps;
private String deets;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_add_exercise);
Button button = (Button) findViewById(R.id.button5);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
goToAddWorkout();
}
});
}
private void goToAddWorkout() {
Intent intent = new Intent(this, AddWorkout.class);
name = (EditText) findViewById(R.id.name);
weight = (EditText) findViewById(R.id.weight);
sets = (EditText) findViewById(R.id.sets);
reps = (EditText) findViewById(R.id.reps);
deets = name.getText().toString() + "\n\t\tWeight: " + weight.getText().toString() + "\n\t\tSets: " + sets.getText().toString() + "\n\t\tReps: " + reps.getText().toString();
intent.putExtra("details", deets);
startActivity(intent);
}
}
public class AddWorkout extends AppCompactActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_add_workout);
LinearLayout vBox = (LinearLayout) findViewById(R.id.vBox);
Bundle extras = getIntent().getExtras();
if (extras != null) {
TextView tv = new TextView(this);
tv.setText(extras.getString("details").toString());
vBox.addView(tv);
}
Button button = (Button) findViewById(R.id.button3);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
goToAddExercise();
}
});
}
}
你应该试试roshan说的那样-
((ArrayAdapter)listView.getAdapter()).insert(data_object, index);
((ArrayAdapter)listView.getAdapter()).notifyDataSetChanged();
对索引使用共享首选项。。。每次你来到第二个活动时,增加索引。。。退出应用程序时,只需清除shared pref index变量。
此外,您还可以在每个列表视图项中添加文本视图您应该尝试类似roshan所说的方法-
((ArrayAdapter)listView.getAdapter()).insert(data_object, index);
((ArrayAdapter)listView.getAdapter()).notifyDataSetChanged();
对索引使用共享首选项。。。每次你来到第二个活动时,增加索引。。。退出应用程序时,只需清除shared pref index变量。
此外,您还可以在每个列表视图项中添加textview,这样您就可以在第二个活动中添加多个条目,每次在第一个活动中添加一个条目。我建议采用一种不同且更简单的方法 在第二个活动中,使用listview/recyclerview,而不是添加新的textview。这还有一个额外的优点,即一旦添加了足够的条目,滚动就不会成为问题
维护一个全局条目列表,您可以将条目添加到该列表中。并使用此列表填充listview。因此,每次在第一个活动中添加一个条目时,您都希望能够在第二个活动中添加多个条目。我建议采用一种不同且更简单的方法 在第二个活动中,使用listview/recyclerview,而不是添加新的textview。这还有一个额外的优点,即一旦添加了足够的条目,滚动就不会成为问题
维护一个全局条目列表,您可以将条目添加到该列表中。并使用此列表填充listview。每次可以将文本添加到列表时,您都可以尝试一个公共静态字符串列表,然后在第二个活动中根据列表计数创建文本视图。并添加到线性布局中。
每次将文本添加到列表中时,您都可以尝试一个公共静态字符串列表,然后在第二个活动中根据列表计数创建文本视图。并添加到线性布局中。
根据我的说法,可以有几种方法,选择一种适合您相关应用的方法
有几种方法可以做到这一点,根据我,选择一个适合你的相关应用
为什么要使用偏好?参考HashMap会使它更健壮吗?只是一个建议…为什么要使用偏好?参考HashMap会使它更健壮吗?只是一个建议..声明一个静态文件并通过另一个活动访问它不是正确的方法。有很多方法可以做到这一点。或者,您可以将该数据放入一个Intent,并将其发送到活动,然后在那里访问它。另外,稍后如果您希望在移动到活动2后终止活动1,这也不会有帮助!声明一个静态文件并用另一个活动访问它是不正确的。有很多方法可以做到这一点。或者,您可以将该数据放入一个Intent,并将其发送到活动,然后在那里访问它。另外,稍后如果您希望在移动到活动2后终止活动1,这也不会有帮助!