0

我想在下一个活动中更改自定义数据列表。请帮我。我试过notifysetdatachanged()了,但我的清单保持不变。我想更新我的列表数据。

  1. 首先我保存数据并将其显示在列表中
  2. 然后在 listActivity 我使用意图将数据传递到下一个 Activity
  3. 然后在下一个活动中我使用更新方法
  4. 现在在按钮中单击我想根据下一个活动的更改更新列表

自定义适配器的代码在这里:

public class CustomAdapter extends ArrayAdapter<Newd> {
    Context context; 
    int layoutResourceId;    
    static Newd data[];
    public BookHolder holder = null;
    public CustomAdapter(Context context, int textViewResourceId,Newd[] objects) {
        super(context, textViewResourceId, objects);
        this.layoutResourceId = textViewResourceId;
        this.context = context;
        CustomAdapter.data = objects;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View row = convertView;
        //BookHolder holder = null;

        if(row == null) {
            LayoutInflater inflater = ((Activity)context).getLayoutInflater();
            row = inflater.inflate(layoutResourceId, parent, false);

            holder = new BookHolder();
            holder.name2= (TextView)row.findViewById(R.id.cname);
            //holder.eml2 = (TextView)row.findViewById(R.id.eml1);
            holder.phn2 = (TextView)row.findViewById(R.id.cphno);

            row.setTag(holder);
        }
        else {
            holder = (BookHolder)row.getTag();
        }

        Newd book_detail = data[position];

        holder.name2.setText(book_detail.name);
        //holder.eml2.setText(book_detail.email);
        holder.phn2.setText(String.valueOf(book_detail.phno));
        System.out.println("name " + book_detail.name + "......." + book_detail.getName() + "name...." + "email " + "phoo" + book_detail.phno );

        return row;
    }

    static class BookHolder {

        TextView name2;
        //TextView eml2;
        TextView phn2;
    }
}

对于列表活动:

public class Showdata extends Activity {
    ListView lv;
    String nms,emlss;
    int phns,id11,id1;
    Newd data1[]=null;
    DataHelper dh;
    SharedPreferences pref;
    ArrayList<Newd>data=new ArrayList<Newd>();
    public ArrayList<Integer>phone = new ArrayList<Integer>();
    public ArrayList<String> name = new ArrayList<String>();
    public ArrayList<String> email = new ArrayList<String>();
    public ArrayList<Integer> userid = new ArrayList<Integer>();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.showdata);

        dh=new DataHelper(getApplicationContext());
        pref = getSharedPreferences("UID",
                                    Context.MODE_PRIVATE);
        SharedPreferences.Editor editor = pref.edit();
        editor.putInt("ID", id1);
        editor.commit();
        System.out.println("id in intent  "  +id1);

        //System.out.println("idssss"   +id1);
        dh.open();
        data=dh.getdata();
        dh.close();

        System.out.println("data .." +data);

        if(data.isEmpty()) {

        }

        else {
            for (int i = 0; i < data.size(); i++) {
                Newd r = data.get(i);
                id11=r.getId();
                nms=r.getName();
                //emlss=r.getEmail();
                phns= r.getPhno();
                //total=r.getSeats();
                System.out.println("list of booking dates  ........" + nms+ "..........u iddd" +phns  +"srno" +emlss);

                userid.add(id11);
                name.add(nms);
                email.add(emlss);
                phone.add(phns);
                System.out.println("list of booking dates1  ........" + nms + "..........u iddd" + phns + "srno" + emlss);
            }

            data1=new Newd[name.size()];

            for (int i = 0; i < name.size(); i++) {
                // srn=srno.get(i);
                int id2=userid.get(i);

                String nm1=name.get(i);
                String eml1=email.get(i);
                int phn1=phone.get(i);

                data1[i]=new Newd(id2,nm1, phn1);
                System.out.println("srno...???"  +id2);
            }
        }

        lv=(ListView) findViewById(R.id.slist);

        final CustomAdapter adapter=new CustomAdapter(Showdata.this, R.layout.custm, data1);
        //lv.add
        lv.setAdapter(adapter);
        System.gc();
        adapter.notifyDataSetChanged();
        lv.setOnItemClickListener(new OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> parent, View v, int position,
                    long id) {
                // TODO Auto-generated method stub
                //Cursor    cr= (Cursor) parent.getItemAtPosition(position);
                // updateList();

                TextView t1=(TextView) findViewById(R.id.cname);
                TextView t2=(TextView) findViewById(R.id.cphno);
                // v=(View)parent.getItemAtPosition(position);
                String unam=t1.getText().toString();

                int phnu=Integer.valueOf(t2.getText().toString());

                Intent it=new Intent(Showdata.this,UpdateData.class);
                it.putExtra("unam",unam);
                it.putExtra("phnu", phnu);
                System.out.println("namesssss"  +unam  + "ph"   +phnu);
                startActivity(it);  
                //    lv.getAdapter().noti  
            }
        }); 
    }
}

下一个活动:

public class UpdateData extends Activity {

    Button update,delete;
    EditText uname,uphn;
    SharedPreferences pref;
    DataHelper dh;
    Cursor cr;
    int idd;
    CustomAdapter adapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.updatedata);
        update=(Button) findViewById(R.id.usubmit);
        delete=(Button) findViewById(R.id.uBack);
        uname=(EditText) findViewById(R.id.uname);
        uphn=(EditText) findViewById(R.id.uphono);
        pref = getSharedPreferences("UID",
                                    Context.MODE_PRIVATE);
        idd=pref.getInt("ID", 0);
        dh=new DataHelper(getApplicationContext());
        Intent it=getIntent();
        uname.setText(it.getStringExtra("unam"));
        uphn.setText(String.valueOf(it.getIntExtra("phnu", 0)));
        //    System.out.println("getintent"  +name);
        update.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                String unames=uname.getText().toString();
                int uphns=Integer.valueOf(uphn.getText().toString());
                dh.open();
                dh.updateValues(idd,unames, uphns);
                dh.close();
                //updateList();

                System.out.println("updateddd"  +unames  +";;;;;;;;;;;;" +uphns);
                Intent up=new Intent(UpdateData.this,Showdata.class);
                startActivity(up);
                //adapter.notifyDataSetChanged();
            }
        });
    }
}
4

0 回答 0