0

私のアプリには 25 個の編集テキストが含まれています。gridView.setAdapter(new TextAdapter(this));count=25 を指定し、アクティビティ クラスで gridView に適合させることで、アダプター クラスの助けを借りて、この 25 の編集テキストを取得しています。そのため、編集テキストは動的に生成されます。しかし、問題は、編集テキストに初期値を設定できないことです。これは、edittext オブジェクトを使用して値を設定できないためです。

edittexts に初期値を設定せず、アプリを続行するとします。方向を変更した後、以前のモードで入力された編集テキストに値を設定し直す際に、同じ問題が繰り返されます。方向性の変化が新しい活動を生み出すからです。私も試してみandroid:configChanges="orientation|keyboardHidden"ましたが、値を に戻している間は役に立ちません**onConfigurationChanged()**setContentView();を設定しているためです。onConfigurationChanged() でそれぞれのビューが必要ですが、それでも edittext オブジェクトを使用して値を設定することはできません。

値を元に戻す解決策はありますか? そうでない場合は、onCreate() メソッドの内容を Application クラスに移動することを考えています (完全に間違った方法かもしれませんが、初心者として簡単に行ってください)。したがって、最初の部分は、編集テキストの作成を含む Application クラスに進みます。onCreate() メソッドでその edittext オブジェクトを取得して、値を設定します。出来ますか?提案してください。コードスニペットをいただければ幸いです。

4

1 に答える 1

1

TextAdapterを変更する必要があります。文字列配列要素の位置をGridViewのEditTextの位置に揃えて、初期値を文字列配列に格納します。

擬似コード(テストされていない):

public class TextAdapter extends BaseAdapter {

String [] initial_value = {"Initial Value 1", "Initial Value 2", "Initial Value 3",  ..., };

    public View getView(int pos, View view, ViewGroup viewGroup) {

        if (view == null) {
            LayoutInflater inflater = (LayoutInflater)    this.context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            view = inflater.inflate(R.layout.edit_text_container, null);
        }

        (EditText) edtTemp = (EditText) view.findViewById(R.id.edit_text_id);
        edtTemp.setText(initial_value[pos]);
    }

}
于 2012-09-13T06:16:32.270 に答える