андроид изменение адаптера массива данных
Here is my main class and Adapter together
public class MainActivity extends Activity {
public MyAdapter adapter;
private View view;
Context context;
public ListView list;
public int t[];
public SharedPreferences prefs;
public SharedPreferences.Editor edit;
public SharedPreferences preferences;
public SharedPreferences.Editor editor;
int [] btnNums={66,150,94,72,206,489,1481,731,131,91,145,137,662,770};
int [] tuesdaynum={351,14,308,19,134,514,305,68,104,129,62,47,409,630};
int [] wednesdaynum={744,131,184,846,37,336,812,88,1020,1286,1106,551,202,156};
int [] thursdaynum={206,662,731,1281,801,351,117,770,302,526,212,1100,1060,1100};
int [] fridaynum={232,998,209,80,73,270,312,55,110,78,209,114,161,1001};
int [] saturdaynum={20,48,573,319,108,66,116,500,46,68,286,201,256,113};
int [] sundaynum={137,148,56,124,68,490,18,156,14,48,20,86,514,298};
int [] btnNumsrefs={66,150,94,72,206,489,1481,731,131,91,145,137,662,770};
int yesterday;
public void storeYesterday(Calendar a){
yesterday=a.get(Calendar.DAY_OF_MONTH);
preferences=getSharedPreferences("yesterday",0);
editor=preferences.edit();
editor.putInt("yesterday",yesterday);
editor.commit();
}
public Integer getFromYesterday(){
preferences=getSharedPreferences("yesterday",0);
int get =preferences.getInt("yesterday", 0);
return get;
}
int[] images = {R.drawable.a1, R.drawable.a2, R.drawable.a3, R.drawable.a4, R.drawable.a5, R.drawable.a6, R.drawable.a7, R.drawable.a8, R.drawable.a9,
R.drawable.a10, R.drawable.a11, R.drawable.a12, R.drawable.a13, R.drawable.a14};
int[] tuesday = {R.drawable.elkahhar, R.drawable.elvehhab, R.drawable.errezzak, R.drawable.elvahid, R.drawable.essamed, R.drawable.elkabid, R.drawable.elkadir, R.drawable.elhakem, R.drawable.eladl,
R.drawable.ellatif, R.drawable.elbatin, R.drawable.elvali, R.drawable.ettevvab, R.drawable.elmuntekim};
int[] wednesday = {R.drawable.elmuktedir, R.drawable.esselam, R.drawable.elmukaddim, R.drawable.elmuaahir, R.drawable.elevvel, R.drawable.elmusavvir, R.drawable.elhabir, R.drawable.elhalim, R.drawable.elazim,
R.drawable.elgafur, R.drawable.ezzahir, R.drawable.elmuteali, R.drawable.elberr, R.drawable.elafuv };
int[] thursday = {R.drawable.elcebbar, R.drawable.elmutekebbir2, R.drawable.elhaliik, R.drawable.elgafffar, R.drawable.ellahir, R.drawable.errafi, R.drawable.elmuiz, R.drawable.elmuzil, R.drawable.elbasir,
R.drawable.essekur, R.drawable.malikulmulk, R.drawable.zulcelalilikram, R.drawable.elganiy, R.drawable.elmugni };
int[] friday = {R.drawable.elkebir, R.drawable.elhafiz, R.drawable.elmukit, R.drawable.elhasib, R.drawable.elcelil, R.drawable.elkerim, R.drawable.elrakib, R.drawable.elmucib, R.drawable.elaliy,
R.drawable.elhakim, R.drawable.elmuksit, R.drawable.elcami, R.drawable.elmani, R.drawable.eddar};
int[] saturday = {R.drawable.elvedud, R.drawable.elmecid, R.drawable.elbais, R.drawable.essehid, R.drawable.elhak, R.drawable.elvekil, R.drawable.elkaviy, R.drawable.elmetin, R.drawable.elveliy,
R.drawable.elhamid, R.drawable.errauf, R.drawable.ennafi, R.drawable.ennur, R.drawable.elbaki};
int[] sunday = {R.drawable.elvasi, R.drawable.elmuhsi, R.drawable.elmubdi, R.drawable.elmuid, R.drawable.elmuhyi, R.drawable.elmumit, R.drawable.elhay, R.drawable.elkayyum, R.drawable.elvacid,
R.drawable.elmacid, R.drawable.elhadi, R.drawable.elbedi, R.drawable.erresid, R.drawable.essabur };
String[] exp;
String[] exp2;
String[] exp3;
String[] exp4;
String[] exp5;
String[] exp6;
String[] exp7;
String[] mean;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
edit= this.getSharedPreferences("NAME", Context.MODE_APPEND).edit();
prefs = getSharedPreferences("NAME", Context.MODE_APPEND);
view=getWindow().getDecorView().getRootView();
Admob.createLoadBanner(getApplicationContext(), view);
Admob.createLoadInterstitial(getApplicationContext(), null);
Resources res=getResources();
exp= res.getStringArray(R.array.names);
exp2= res.getStringArray(R.array.faz2);
exp3= res.getStringArray(R.array.faz3);
exp4= res.getStringArray(R.array.faz4);
exp5= res.getStringArray(R.array.faz5);
exp6= res.getStringArray(R.array.faz6);
exp7= res.getStringArray(R.array.faz7);
mean=res.getStringArray(R.array.anlam);
list= (ListView) findViewById(R.id.listView);
Calendar cal = Calendar.getInstance();
cal.setTime(new Date());
Calendar cal2=Calendar.getInstance();
cal2.setTime(new Date());
int today = cal.get(Calendar.DAY_OF_MONTH);
if(today==Calendar.Monday){
adapter.setData(this,exp3,thursday,mean,thursdaynum);
}else if(today==Calendar.TUESDAY){
adapter.clear();
adapter=new MyAdapter(this,exp2,tuesday,mean,tuesdaynum);
}//goes on
if(getFromYesterday()==null){
storeYesterday(cal);
}else {
if(today!=getFromYesterday()) {
storeYesterday(cal);
adapter = new MyAdapter(this, exp, images, mean, t);
storeYesterday(cal);
edit.putInt("Count", btnNumsrefs.length);
int count = 0;
for (int i : btnNums) {
edit.putInt("IntValue_" + count++, i);
}
}
edit.commit();
}
int[] ret;
Integer count1 = prefs.getInt("Count", 0);
if(count1!=null) {
ret = new int[count1];
for (int i = 0; i < count1; i++) {
ret[i] = prefs.getInt("IntValue_" + i, i);
t=ret;
}
}
if(t!=null)
{
adapter = new MyAdapter(this, exp, images, mean, t);
}else
{
adapter = new MyAdapter(this, exp, images, mean, btnNums);
}
list.setAdapter(adapter);
adapter.notifyDataSetChanged();
context=getApplicationContext();
}
}
class MyAdapter extends ArrayAdapter<String>{
int [] images;
String [] titleArray;
String [] descriptionArray;
int [] btnNums;
MainActivity ma;
public MyAdapter(MainActivity m, String[] titles, int imgs[], String[] descp, int[] btnNum){
super(m, R.layout.single_row, R.id.textView,titles);
this.images=imgs;
this.titleArray=titles;
this.descriptionArray=descp;
btnNums=btnNum;
this.ma=m;
}
@Override
public View getView(final int position, final View convertView, ViewGroup parent) {
LayoutInflater inflater= (LayoutInflater) ma.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
final View row=inflater.inflate(R.layout.single_row, parent, false);
final TextView myTitle=(TextView)row.findViewById(R.id.textView);
myTitle.findViewById(R.id.textView);
final TextView descp=(TextView)row.findViewById(R.id.textView2);
final ImageView imageView = (ImageView) row.findViewById(R.id.imageView);
final Button button = (Button) row.findViewById(R.id.angry_btn);
final Vibrator a = (Vibrator) ma.getSystemService(Context.VIBRATOR_SERVICE);
if(ma.t!=null)
{
for(int i=0; i<14;i++){
if (btnNums[position] <= 0) {
button.setText("OK");
/* Integer index=(Integer) convertView.getTag();
ma.list.removeViewAt(index);
ma.adapter.notifyDataSetChanged();
*/
}else {
button.setText("" + ma.t[position]);
}
// button.setText("" + ma.t[position]);
imageView.setImageResource(images[position]);
myTitle.setText(titleArray[position]);
descp.setText(descriptionArray[position]);
}
}else
{
for(int i=0; i<14;i++){
if (btnNums[position] <= 0) {
button.setText("OK");
/* Integer index=(Integer) convertView.getTag();
ma.list.removeViewAt(index);
ma.adapter.notifyDataSetChanged();
*/
}else {
button.setText("" + btnNums[position]);
}
// button.setText("" + btnNums[position]);
imageView.setImageResource(images[position]);
myTitle.setText(titleArray[position]);
descp.setText(descriptionArray[position]);
}
}
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
btnNums[position]--;
storeIntArray(btnNums);
a.vibrate(30);
int temp[]=getFromPrefs();
ma.t=temp;
for (int i = 0; i <14; i++) {
if (btnNums[position] <= 0) {
button.setText("OK");
/* Integer index=(Integer) convertView.getTag();
ma.list.removeViewAt(index);
ma.adapter.notifyDataSetChanged();
*/
}else {
button.setText("" + temp[position]);
}
imageView.setImageResource(images[position]);
myTitle.setText(titleArray[position]);
descp.setText(descriptionArray[position]);
}
}
});
return row;
}
В моем приложении я использую пользовательский вид списка с различной DATAS. эти данные поступают из массивов, я хочу отправить новые массивы через конструктор в свой адаптер, проверив дату, но это не сработает.
после этих кодов я использовал эти строки
list.setAdapter(adapter);
adapter.notifyDataSetChanged();
Пожалуйста, помогите мне stucked.
Опубликовать код MyAdapter, мне нужно подтвердить его правильность, прежде чем делать какие-либо предложения – NezSpencer
Я разместил код MyAdapter. Я использую этот адаптер в классе Activity. –
нет решения? –