私はアンドロイド開発プロジェクトでListViewとその関連データを持っている問題を手にしてください。android-listview戻るボタンを押したときにデータの行が失われる
私のような活動のUserProfileの意向により開始されるOrderFormと呼ばれる活動がありますのUserProfileで
Intent intent = new Intent(this, OrderForm.class);
startActivity(intent);
が続いてOrderFormでのEditTextとするには、[追加]ボタンがありますString項目をArrayListに追加すると、それに応じてUIが生成されます。
[戻る]ボタン(UserProfileに戻って)をクリックして再度Intent to OrderFormを実行すると、UIにリスト項目が表示されません。なぜですか?
私は、永続性とSharedPreferencesでもRoomを使用できることを認識していますが、 よりクリーンで効率的な方法があるかどうかを確認したいと思います。
また、私はそれらを正しく理解していないかもしれませんが、私はonSaveInstanceStateとonRestoreInstanceStateを試してみましたが、私のためには動作しません。
ありがとうございます。
は、ここでは、活動の仕事をライフサイクルを理解する必要がOrderForm
public class OrderForm extends AppCompatActivity {
ArrayList<String> list;
ListView itemList;
ArrayAdapter<String> arrayAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_order_form);
itemList = findViewById(R.id.itemList);
itemText = findViewById(R.id.item);
linearLayout = findViewById(R.id.no_items_container);
orderContainer = findViewById(R.id.orderContainer);
list = new ArrayList<>();
arrayAdapter = new ArrayAdapter<String>(this,
R.layout.list_item,R.id.rowItem, list)
{
@Override
public View getView(int position,
View convertView,
ViewGroup parent) {
// some custom stuff here
}
}
public void addItem(View view)
{
String item = itemText.getText().toString().trim().toLowerCase();
if(!item.isEmpty() && list.indexOf(item) == -1) {
arrayAdapter.add(item);
}
}
あなたはアイテムを置くArrayListへの参照を失っているように思えます。もっとコードを表示する必要があります。具体的には、アレイアダプタのコードです。 – DigitalNinja