简体   繁体   English

将数据从 listView 传递到另一个 Activity EditText

[英]Passing data from listView to another Activity EditText

I am displaying data in listView and on long Press on listView i want to update its data and pass its data to another Update activity Edit texts.我在 listView 中显示数据,并且在 listView 上长按我想更新其数据并将其数据传递给另一个更新活动编辑文本。

my code for displaying:我的显示代码:

public class Retreivedata extends AppCompatActivity {
ListView listView;
FirebaseDatabase database;
DatabaseReference ref;
ArrayList<String> list;
ArrayAdapter<String> adapter;
Member member;
 Button btnDlt;
 Boolean a=false;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_retreivedata);
    member = new Member();
   listView =(ListView)findViewById(R.id.listView);
    btnDlt = (Button) findViewById(R.id.btnDlt);
   database = FirebaseDatabase.getInstance();
   ref = database.getReference("Member");
   list = new ArrayList<>();
   adapter = new ArrayAdapter<String>(this,R.layout.list_white_text,R.id.userInfo, list);
   ref.addValueEventListener(new ValueEventListener() {
       @Override
       public void onDataChange(DataSnapshot dataSnapshot) {
                     for(DataSnapshot dts: dataSnapshot.getChildren())
                     {
                         member = dts.getValue(Member.class);
                         list.add("Name :"+member.getName().toString()+" Age 
            :"+member.getAge().toString()+" Phone :"+member.getPhone().toString()+"\n"+"------------- 
      -----------");
           }
           listView.setAdapter(adapter);
       }

       @Override
       public void onCancelled(DatabaseError databaseError) {

       }
   });

      btnDlt.setEnabled(false);
  listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
      @Override
      public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
          Boolean a=true;
          String item = adapter.getItem(position);
          Toast.makeText(Retreivedata.this,"Do u want to delete this 
        record!!",Toast.LENGTH_LONG).show();
          if (a==true)
          {
              btnDlt.setEnabled(true);

          }else{
              btnDlt.setEnabled(false);
          }
      }
          });

  listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
      @Override
      public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
          String item = adapter.getItem(position).toString();
          Intent intent = new Intent(Retreivedata.this, Update.class);
          intent.putExtra("tem",item);
          startActivity(intent);
          return false;
      }
  });

    btnDlt.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
                ref.child(member.getMemberId()).removeValue();
                Toast.makeText(Retreivedata.this, "Record deleted Successfully", Toast.LENGTH_LONG).show();
                adapter.remove(val);
                adapter.clear();
            }
    });

}
}

I want to recive Name,age,phone,height data in every EditText in another activity.我想在另一个活动中的每个 EditText 中接收姓名、年龄、电话、身高数据。

My code for Receiving data:我的接收数据代码:

public class Update extends AppCompatActivity {

EditText EditTxtName,EditTxtAge,txtPhone,txtHeight;
Button btnUpdate;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_update);
    EditTxtName = (EditText)findViewById(R.id.EditTxtName);
    EditTxtAge = (EditText)findViewById(R.id.EditTxtAge);
    txtPhone = (EditText)findViewById(R.id.txtPhone);
    txtHeight = (EditText)findViewById(R.id.txtHeight);
    btnUpdate = (Button)findViewById(R.id.btnUpdate);

    String TempHolder = getIntent().getStringExtra("tem");

    EditTxtName.setText(TempHolder);
}
}

I receive all data in EditTxtName but i want to set that data in its Edittexts.我在 EditTxtName 中收到所有数据,但我想在其 Edittexts 中设置该数据。

Please suggest me how to do so.. Thanks in advance.请建议我怎么做..提前谢谢。

You should use implement Serializable or Parcelable your member class :您应该使用实现SerializableParcelable您的member class

First way Serializable like this:像这样Serializable的第一种方式:

public class Member implements Serializable{
        private int id;
        private String name;

        public void setId(int id) {
           this.id = id;
        }
        public int getId() {
           return id;
        }
        public String getName() {
           return name;
        }

        public void setName(String name) {
           this.name = name;
        }
}

Then you can pass this object like this:然后你可以像这样传递这个 object:

 Member member=adapter.getItem(position);
 Intent intent = new Intent(this, Update.class);
 intent.putExtra("tem", member);
 startActivity(intent);

And you can get data like this:你可以得到这样的数据:

Member member= (Member) getIntent().getSerializableExtra("tem");

THen you can set per data in its EditText like this:然后你可以在它的 EditText 中设置每个数据,如下所示:

EditTxtName.setName(member.name);

Second way Parcelable like this:第二种方式Parcelable像这样:

public class ObjectA implements Parcelable
{
    private String name = null;
    private int id = 0;


    public ObjectA()
    {
    }

    @Override
    public int describeContents()
    {
        return 0;
    }

    @Override
    public void writeToParcel(Parcel dest, int flags)
    {
        dest.writeString(this.name);
        dest.writeInt(this.id);
    }

    public void readFromParcel(Parcel in)
    {

        this.name = in.readString();
        this.id = in.readInt();
    }
}

Then pass your data like this:然后像这样传递您的数据:

            Member member=adapter.getItem(position);
            Intent intent = new Intent(this,Update.class);
            intent.putExtra("tem", member);
            startActivity(i);

And get it like this:得到它是这样的:

Bundle bundle = getIntent().getExtras();
Member member = bundle.getParcelable("tem");

Then set it to editText like this:然后将其设置为editText,如下所示:

EditTxtName.setName(member.name);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 将数据从列表视图传递到另一个活动的edittext - Passing data from listview to edittext of another activity 将Firebase数据从ListView传递到单独的活动editText - Passing firebase data from ListView to seperate activity editText 将数据从一个活动传递到另一个活动,并在传递和EditText时出错 - passing data from an activity to another and getting an error when passing and EditText 将数据从edittext添加到listview另一个活动android - add data to listview from edittext another activity android 单击另一个活动中的EditText时,在ListView中传递数据 - Pass Data in ListView when clicked to EditText from another Activity 在另一个活动中将数据从EditText传递到TextView并通过共享首选项进行使用 - Passing data from EditText to TextView in another activity and savaing it with Shared Preferences Android:将数据从一个活动传递到ListView中的另一个活动 - Android: Passing data from one activity to another activity in ListView 将ListView中的EditText值传递给另一个Activity - Pass EditText value from ListView to another Activity 将多个 editText 字段数据传递给另一个活动 - Passing multiple editText field data to another activity 将数据从listview中的单击项传递到另一个活动时出错 - Error while passing data from clicked item in listview to another activity
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM