1

アクティビティ/フラグメントの int 値を追跡したい場合、このアプローチは正しくありません:

レイアウト XML には、次のものがあります。

<TextView
    android:id="@+id/int_id"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:visibility="gone" />

フラグメントonCreateViewまたはアクティビティのonCreateに、次のコードを含めます。

TextView intId = (TextView)getView().findViewById(R.id.int_id);
intId.setText(String.valueOf(<integer_value_to_keep_track_of>));

次に、コードの後半で int 値を使用する必要があるときはいつでも、次のようにしてアクセスします。

int accessId = Integer.valueOf(((TextView)getView().findViewById(R.id.detail_column_id)).getText().toString());

これは状態を維持するための最良の方法ではないことがわかります。クラス メンバー (例: private int accessId) を宣言し、それを割り当てる方がよいでしょうか? ありがとう!

4

1 に答える 1

0

通常、内部にいる場合、の階層の一部である のonCreateView()参照は、レイアウトをインフレートするときに 1 回だけ取得します。インスタンスを呼び出すと返されます。階層の親。that を使用して、の参照を取得できます。ViewFragmentViewinfalter.inflate()ViewViewfindViewById()TextView

例えば:

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle SavedInstanceState) {         // TODO Auto-generated method stub      

View view = (View) inflater.inflate(R.layout.me_layout, container,false);       
TextView intId = (TextView)view.findViewById(R.id.int_id);              
return view;    
}

TextView次に、参照を取得したら、簡単に実行できます

String text = intId.getText().toString();

中身onCreateView();

于 2013-10-04T23:46:59.457 に答える