我试图解决这个问题大约 2 个小时。所以我很高兴每一个可能的答案。我有一个自定义的 ListViewAdapter,它从一个数组中获取他的内容。但是我有 19 个数组,我想根据用户单击的日期更改内容(因此数组)(顶部有一个日历,上面有 19 个日期)。这是一张图片:
因此,默认情况下,您打开应用程序时,将显示“date_1”数组中的内容(对于日历中的 25.)。当您单击其他日期时,将显示数组中属于该日期的内容(例如 26. -> date_2、27. date_3 等)。每个数组都必须从资源中获取负载并保存在单个数组变量中。
所以我的问题是: 我无法更改数组。这是我的代码:
// this is the Array Variable:
String[] day_chosen;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.calender);
[...]
prepareArrayLits();
lview3 = (ListView) findViewById(R.id.listView1);
adapter = new ListViewCustomAdapter(this, itemList);
lview3.setAdapter(adapter);
lview3.setOnItemClickListener(this);
}
public void onItemClick1(AdapterView<?> arg0, View arg1, int position, long id) {
// TODO Auto-generated method stub
}
/* Method used to prepare the ArrayList,
*/
public void prepareArrayLits()
{
// this is where the Arrays get loaded from the resource:
day_chosen = getResources().getStringArray(R.array.date_1);
//this Array is not relvant:
String[] sports = getResources().getStringArray(R.array.sports_array);
itemList = new ArrayList<Object>();
for (int counter = 0; counter < day_chosen.length; counter+=4){
int Intparser = Integer.parseInt(day_chosen[counter+1]);
AddObjectToList(imgid(Intparser), sports[Intparser],day_chosen[counter],day_chosen[counter+3], backgroundbox(Intparser)) ;
}
}
// Add one item into the Array List
public void AddObjectToList(int image, String title, String desc, String time, int backbox)
{
bean = new ItemBean();
bean.setBackBox(backbox);
bean.setTime(time);
bean.setDescription(desc);
bean.setImage(image);
bean.setTitle(title);
itemList.add(bean);
}
[...]
}
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
// TODO Auto-generated method stub
}
// the onClick Events for every date:
public void onClick(View v) {
// TODO Auto-generated method stub
switch(v.getId()){
case R.id.d_1 :
// I tried to change the Array from here(But it didn't work):
day_chosen = getResources().getStringArray(R.array.date_1);
break;
case R.id.d_2 :
day_chosen = getResources().getStringArray(R.array.date_2);
break;
[...]
}
}
我尝试了什么:
我设置了一个全局类,但它不起作用
我试图设置 getter 和 setter。但也没有工作
我不知道如何解决这个问题。感谢所有可能的解决方案,谢谢。