最终目标是在不修改代码的情况下向程序添加其他片段。我想通过更改资源文件的数组值(而不是在运行时)来完成此操作。一个资源数组具有微调器值,另一个具有片段文件名。它们在资源文件中列出的顺序是它们的关联方式:因此第一个spinner array-String与第一个片段TypedArray项相关联,依此类推。
我写了一个简单的类,这样我就可以保持我的微调器值和微调器值所代表的片段之间的相关性。这是班级:
import android.support.v4.app.Fragment;
public class SensorList {
int index;
String name;
Fragment sensorFrag;
SensorList(){
name="";
sensorFrag=null;
index=0;
}
}
我想用资源TypedList中的值填充此类的实例。这就是我遇到问题的地方。到目前为止,这是我的代码。最后一行显然是错误的,因为它没有“添加”的索引。
public ArrayList<SensorList> sensorList = new ArrayList<SensorList>();
Resources res = getResources();
sensorList.(res.obtainTypedArray(R.array.sensor_frag_names)); //This line is a problem.
我是以错误的方式来做这件事的吗?有没有我可以申请的演员。 如果不清楚,请告诉我。感谢。
答案 0 :(得分:1)
Resources resources = getResources();
TypedArray name= resources.obtainTypedArray(R.array.sensor_frag_names);
TypedArray sensorFrag= resources.obtainTypedArray(R.array.sensor_frag_codes);
TypedArray index= resources.obtainTypedArray(R.array.sensor_frag_index);
SensorList slist= new SensorList (name.getString(index), sensorFrag.getFragment(index), index.getInt(index));
name.recycle();
sensorFrag.recycle();
index.recycle();