Я пытаюсь научиться программно добавлять TextView и нашел много ответов на эту тему. У меня работает следующий код:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
LinearLayout llCommand1 = (LinearLayout) findViewById(R.id.LL_Main);
llCommand1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mtAdd_Register();
}
});
}
public void mtAdd_Register(){
View llColumn1 = findViewById(R.id.Column1);
TextView tvData1 = (TextView) getLayoutInflater().inflate(R.layout.tv_red, null);
sData = "user input" //I'll write a method to get user input
tvData1.setText(sData);
tvData1.setLayoutParams(new LinearLayoutCompat.LayoutParams(LinearLayoutCompat.LayoutParams.MATCH_PARENT,30));
((LinearLayout) llColumn1).addView(tvData1);
}
«LL_Main» — это горизонтальный LinearLayout с 6 дочерними вертикальными LinearLayouts (от Column1 до Column6), а «tv_red» используется для установки гравитации на «центр» и цвета фона на «красный» (с рамкой, из доступного для рисования ресурса).
Этот код работает определенным образом, потому что, когда я нажимаю LL_Main во время выполнения, я получаю добавленные TextViews, как и ожидалось. Для этого теста TextView создается только в Column1, но позже у меня будет массив с идентификаторами и цикл для создания TextView для каждого столбца.
Но я хочу, чтобы эти добавленные текстовые представления были на месте, когда я снова запускаю приложение, я имею в виду, что сначала в моем приложении нет данных для отображения, и моя цель - добавить и сохранить заметку, когда пользователь касается экрана , поэтому пользователь будет видеть предыдущие добавленные TextView каждый раз, когда запускает приложение.
Я иду правильным путем? Или мне следует сохранить пользовательский ввод в файл JSON и получать его каждый раз, когда я запускаю приложение? Но даже если мне нужно сохранить пользовательский ввод в файле JSON, как сохранить TextViews для отображения сохраненных данных?
Я просто подумал: когда я впервые запускаю приложение, я могу получить входные данные и добавить, скажем, 5 TextView. Я сохраняю файл JSON, и когда я снова запускаю приложение, я должен проверить, сколько данных содержится в файле. Поэтому мой код должен добавить столько TextView, сколько требуется для отображения полученных данных.
Да?.......
РЕДАКТИРОВАТЬ:
Просто для большей ясности: скажем, в моем макете ничего нет, а в файле activity_main.xml ничего нет, кроме пустого экрана. Когда пользователь касается экрана, TextView добавляется с текстом «пользовательский ввод». И это будет происходить столько раз, сколько он коснется экрана.
НО, когда он закрывает приложение и запускает его снова.......... все TextView исчезают. Каждый раз, когда пользователь запускает приложение, он видит пустой экран. Мне нужно, чтобы предыдущие TextViews были там ............