0

この質問が既に存在する場合は申し訳ありませんが、私の問題に対する答えが見つかりませんでした。私のアプリケーションのアイデアはショッピング リストです。ユーザーは食品のリストを表示でき、アイテムをクリックすると、自動的にリストに追加されます。

私がすでに持っているのは、raw フォルダー内の xml ファイルから生成された ListView です。これは私の食べ物です。SQLite データベースには保存していません。
ここでやりたいことは、このリストのアイテムをクリックすると、「ShoppingList.java」という別のアクティビティの ListView に追加されることです。すぐに開くべきではないため、ユーザーはさらにアイテムを追加できます。

アイテムをクリックすると、画面上部の同じアクティビティ内の「選択」と呼ばれる TextView に追加されます。あるアクティビティから別のアクティビティに項目を追加するにはどうすればよいですか? ご助力ありがとうございます!

    public class FishOk extends ListActivity {
    TextView selection;
    ArrayList<String> items=new ArrayList<String>();

    @Override
    public void onCreate(Bundle icicle) {
     super.onCreate(icicle);
     setContentView(R.layout.foodok_list);
     selection=(TextView)findViewById(R.id.selection);

    try {
     InputStream in=getResources().openRawResource(R.raw.fish);
     DocumentBuilder builder=DocumentBuilderFactory
                            .newInstance()
                            .newDocumentBuilder();
    Document doc=builder.parse(in, null);
     NodeList words=doc.getElementsByTagName("product");

    for (int i=0;i<words.getLength();i++) {
    items.add(((Element)words.item(i)).getAttribute("value"));
    }

    in.close();
    }

    catch (Throwable t) {
     Toast
     .makeText(this, "Exception: "+t.toString(), 2000)
     .show();
    }

    ListView lstView = getListView(); 
 lstView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
 lstView.setTextFilterEnabled(true); 

    setListAdapter(new ArrayAdapter<String>(this,
                              android.R.layout.simple_list_item_1,
                              items));
    }

    public void onListItemClick(ListView parent, View v, int position,
              long id) {
     selection.setText(items.get(position).toString());
    }

        public void onClick(View view) {
            ListView lstView = getListView(); 

            String itemsSelected = "Selected items: \n"; 
            for (int i=0; i<lstView.getCount(); i++) {
                if (lstView.isItemChecked(i)) {
            itemsSelected += lstView.getItemAtPosition(i) + "\n"; 
        }
    }
            Toast.makeText(this, itemsSelected, Toast.LENGTH_LONG).show(); 

        }
4

2 に答える 2

1

ユーザーには表示されず、まだ存在していないアイテムをのに追加しListViewても意味がありません。Activityデータを保存する場所が必要です。SQLiteデータベース、プレーンテキストファイル、またはSharedPreferencesデータが少ない場合はデータを保存できます。Button現在の内部をクリックしているときはActivity、情報をデータストレージに保存し、それを取得しListViewて2番目の開始時にデータを入力する必要がありActivityます。お役に立てれば。

于 2013-03-12T11:27:48.013 に答える
0

アクティビティは、ユーザーがアプリケーションを操作できるようにUIを配置できるウィンドウです。

ここで、アプリケーション全体のアクティビティでデータを使用するには、コレクションまたはデータベースのいずれかを使用する必要があります。

しかし、あなたの要件に従って、私はあなたがコレクションを使うべきだと思います。

  • データに応じて、ArraylistまたはHashTableを維持 します。

  • そのデータをあるアクティビティから別のアクティビティに渡します。

また

  • シングルトンクラスを維持し、そのクラスのデータを更新します他のアクティビティからのデータにアクセスします。

これがお役に立てば幸いです。

于 2013-03-13T05:11:25.627 に答える