5

私のAndroidアプリケーションでは、メインのAndroidアクティビティで宣言した静的配列リストに文字列値を追加できるようにしたいと考えています。ロジックは次のようになります。

1) ボタンをクリックしてアクティビティが開始されたとき。oncreate メソッドで、現在のアクティビティであるクラスの名前を文字列値に保存したいと考えています。例えば:

String className = "com.lunchlist.demo";

この値が割り当てられた後、すぐにこの文字列値を Static ArrayList に追加したいと思います。値を追加した後

私はこのようなことをしました:

static String List<String> members = new ArrayList<String>();

これは私の主な活動で宣言されています。ボタンをクリックして別のアクティビティを開始すると、これを使用して、現在のアクティビティの文字列クラス名を oncreate メソッドの arraylist に追加します。

  String className = "com.lunchlist.demo" 
  members.add(className);

私の質問は今、これにより文字列値が配列リストに追加され、後で使用できるように保存されますか? たとえば、3 つの異なるボタンをクリックすると、3 つの異なる className 値が arraylist に追加されます。これは、メンバーの配列リストの 3 つの異なる文字列値を保持する文字列値を格納しますか? arraylist の各項目をチェックして、新しいアクティビティが開始されたときに値が追加されているかどうかを確認するにはどうすればよいですか?

これを取得し、共有設定を使用してこれらの値を保存し、後でそれらを取得して、アクティビティを開始するクラスである文字列値を使用してインテントを開始する必要があるため、これを求めています。クラス名の文字列値で開始するアクティビティを取得しましたが、それらを保存するのに問題があります。

4

3 に答える 3

22

すべての質問に答える:

これにより、文字列値が配列リストに追加され、後で使用できるように保存されますか?

はい。あなたのコードは問題なくそれを行うのに最適なようです。

たとえば、3 つの異なるボタンをクリックすると、3 つの異なる className 値が arraylist に追加されます。これは、メンバー配列リストの 3 つの異なる文字列値を保持する文字列値を格納しますか?

ボタンonClickListenerに文字列をメンバーArrayListに追加するように指示すると、配列リストは重複データがあるかどうかを気にしないため、以前にそのメンバーをArrayListに追加したかどうかに関係なく実行されます。

arraylist の各項目をチェックして、新しいアクティビティが開始されたときに値が追加されているかどうかを確認するにはどうすればよいですか?

for または for-each cicle を使用して配列リストを反復し、そのメンバー名をログ エントリとして出力する必要があります。

  • 各シクル

    for (String member : members){
        Log.i("Member name: ", member);
    }
    
  • シクル用のシンプルな

    int listSize = members.size();
    
    for (int i = 0; i<listSize; i++){
        Log.i("Member name: ", members.get(i));
    }
    

インデックスが範囲外の値を出力またはログに記録しようとするとi < 0 || i >= listSizeIndexOutOfBoundsExceptionがスローされ、アプリがクラッシュします。

于 2012-07-15T17:34:14.173 に答える
6

Java 1.5 から Java に導入された For-Each を使用して繰り返します。

for (String s : members){
    Log.d("My array list content: ", s);
}

詳細については、次のリンクを参照してください。

http://docs.oracle.com/javase/1.5.0/docs/guide/language/foreach.html

于 2012-07-15T17:05:39.183 に答える