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

通常,如果您在内部,则在扩展布局时只会获得一次作为s层次结构一部分的 sonCreateView()的引用。当你调用一个实例时返回;层次结构的父级。您可以使用 that 's来获取.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 回答