بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

آپدیت نشدن Emulator بعد از تغییرات در پروژه note

مدیریت گفتگو
Ali 10 سال پیش
آخرین تغییر: 10 سال پیش

سلام دوستان.در پروژه  note-server ، وقتی تغییراتی در ActivityEdit انجام میدم یا لیستی اضافه میکنم، وقتی برمیگرده تو ActivityMain ،  تو emulator(نرم افزار)  آپدیت نمیشه ولی تغییرات تو سرور انجام میشه .لطفا راهنمایی کنید.

---------------------------------------------------------------------------------------------------------

public class ActivityMain extends Activity {
    @Override
    protected void onResume() {
        G.currentActivity = this;
        super.onResume();
        adapter.notifyDataSetChanged();
    }
 
    private ArrayAdapter adapter;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ListView lstView = (ListView) findViewById(R.id.lstView);
        Button btnAdd = (Button) findViewById(R.id.btnAdd);
 
        adapter = new AdapterNote(G.task);
        lstView.setAdapter(adapter);
 
        btnAdd.setOnClickListener(new OnClickListener() {
 
            public void onClick(View arg0) {
                Intent intent = new Intent(G.currentActivity, ActivityEdit.class);
                G.currentActivity.startActivity(intent);
            }
        });
        WebService.readData();
        adapter.notifyDataSetChanged();
    }
 
}
------------------------------------------------------------------------------------------------
public class ActivityEdit extends Activity {
 
    public boolean mustInsert;
 
 
    @Override
    protected void onResume() {
        G.currentActivity = this;
        super.onResume();
    }
 
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_edit);
 
        final EditText edtTitle = (EditText) findViewById(R.id.edtTitle);
        final EditText edtDesc = (EditText) findViewById(R.id.edtDesc);
        final CheckBox chkDone = (CheckBox) findViewById(R.id.chkDone);
        Button btnOk = (Button) findViewById(R.id.btnOk);
        final StructTask task;
        Bundle extras = getIntent().getExtras();
 
        if (extras != null) {
            int position = extras.getInt("POSITION");
            task = G.task.get(position);
            edtTitle.setText(task.title);
            edtDesc.setText(task.desc);
            chkDone.setChecked(task.done);
        } else {
            task = new StructTask();
            mustInsert = true;
        }
        btnOk.setOnClickListener(new OnClickListener() {
 
            public void onClick(View arg0) {
                task.done = chkDone.isChecked();
                BasicNameValuePair idPair = new BasicNameValuePair("id", "" + task.id);
                BasicNameValuePair titlePair = new BasicNameValuePair("title", edtTitle.getText().toString());
                BasicNameValuePair descPair = new BasicNameValuePair("desc", edtDesc.getText().toString());
                BasicNameValuePair donePair = new BasicNameValuePair("done", "" + (task.done ? 1 : 0));
                ArrayList params = new ArrayList();
                params.add(titlePair);
                params.add(descPair);
                params.add(idPair);
                params.add(donePair);
                if (mustInsert) {
                    WebService.insertData(params);
                    G.task.add(task);
                } else {
                    WebService.updateData(params);
                }
                finish();
            }
        });
    }
}
 

نظرات

amraee 10 سال پیش
adabter.notifydatasetchenge(); برای آبدیت و Refresh اطلاعات بکار ببرید
احمد 10 سال پیش
کد ها را به صورت کد بزارین نه متن معمولی نکته دوستمون را تست کنید
Ali 10 سال پیش
کدها رو اصلاح کردم تو متن. از adapter.notifyData... استفاده کردم بازم جواب نمیده.
احمد 10 سال پیش
Log بزار و تست کن کدت به نظر مشکل نداره

پاسخ‌ها 1

hossein_hr10 10 سال پیش

سلام دوست عزیز کدی نوشتین

publicvoid onClick(View arg0){
                task.done= chkDone.isChecked();
                BasicNameValuePair idPair =newBasicNameValuePair("id",""+ task.id);
                BasicNameValuePair titlePair =newBasicNameValuePair("title", edtTitle.getText().toString());
                BasicNameValuePair descPair =newBasicNameValuePair("desc", edtDesc.getText().toString());
                BasicNameValuePair donePair =newBasicNameValuePair("done",""+(task.done?1:0));
                ArrayListparams=newArrayList();
                params.add(titlePair);
                params.add(descPair);
                params.add(idPair);
                params.add(donePair);
                if(mustInsert){
                    WebService.insertData(params);
                    G.task.add(task);
                }else{
                    WebService.updateData(params);
                }
                finish();
            }




به این نمونه تغییر بدی


publicvoid onClick(View arg0){
                task.done= chkDone.isChecked();
///////////////
task.title=edtTitle.getText().toString());
task.desc=edtDesc.getText().toString());
////////////////               
 
BasicNameValuePair idPair =newBasicNameValuePair("id",""+ task.id);
 
BasicNameValuePair titlePair =newBasicNameValuePair("title", edtTitle.getText().toString());  
BasicNameValuePair descPair =newBasicNameValuePair("desc", edtDesc.getText().toString());
و در ادامه دقیقا همون کد خودتون رو بنویسید فقط اون دو خطی که داخل //// نوشتمو رو اضافه کنیند به کداتون

و دستوری رو هم که نوشتین
ArrayListparams=newArrayList();
به این تغییر بدین
ArrayList<NameValuePair>params=newArrayList<NameValuePair>();
 

نظرات

Ali 10 سال پیش
مرسی دوست عزیز.دقیقا مشکل همینجا بود که من واسه titlePair و descPair مستقیم edtTitle و edtDesc تعریف کرده بودم .task.title و task.desc گذاشتم درست شد. از بقیه دوستان هم ممنونم.
hossein_hr10 10 سال پیش
خواهش میکنم خوشحالم مشکلتون حل شد موفق باشید

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .