私はこの問題を約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;
[...]
}
}
私は何を試しましたか:
グローバルクラスを設定しましたが、機能しませんでした
ゲッターとセッターを設定してみました。しかし、また機能しませんでした
これを解決する方法がわかりません。考えられるすべての解決策に感謝します、ありがとう。