我通常会int[]
在某处的代码中放入一小部分 Id。如果您有很多,请考虑以编程方式创建它们 ( layout.addView(new TextView(..
)。
例如,如果您想启动 anActivity
并通过 Extras 告诉它要显示哪些字符串,Bundle
您可以将它们直接作为数组放置。
void startOther(String[] texts) {
Intent i = new Intent( /* ... */);
i.putExtra("texts", texts);
// start via intent
}
现在在里面Activity
我会把ids作为一个“常量”。
// hardcoded array of R.ids
private static final int[] TEXT_IDS = {
R.id.text1,
R.id.text2,
// ...
};
然后同时使用 Bundle 和 id 数组,例如:
// a List of TextViews used within this Activity instance
private List<TextView> mTextViews = new ArrayList<TextView>(TEXT_IDS.length);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.something);
// find all TextViews & add them to the List
for (int id : TEXT_IDS) {
mTextViews.add((TextView)findViewById(id));
}
// set their values based on Bundle
String[] stringArray = savedInstanceState.getStringArray("texts");
for (int i = 0; i < mTextViews.size() && i < stringArray.length; i++) {
mTextViews.get(i).setText(stringArray[i]);
}
}