Intent
效果图




activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ListView
android:id="@+id/id_listview"
android:layout_width="match_parent"
android:layout_height="match_parent">
</ListView>
</LinearLayout>
person.xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".PersonActivity">
<EditText
android:id="@+id/edit_name"
android:layout_width="235dp"
android:layout_height="48dp"
android:layout_marginTop="95dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<EditText
android:id="@+id/editText_age"
android:layout_width="233dp"
android:layout_height="52dp"
android:layout_marginTop="29dp"
android:ems="10"
android:inputType="numberDecimal"
app:layout_constraintStart_toStartOf="@+id/edit_name"
app:layout_constraintTop_toBottomOf="@+id/edit_name" />
<RadioGroup
android:id="@+id/radioGroup"
android:layout_width="307dp"
android:layout_height="164dp"
android:layout_marginEnd="41dp"
android:layout_marginRight="41dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent">
<RadioButton
android:id="@+id/radiobutton_man"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:checked="true"
android:text="man" />
<RadioButton
android:id="@+id/radiobutton_woman"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="woman" />
</RadioGroup>
<Button
android:id="@+id/button_confirm"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="46dp"
android:layout_marginLeft="46dp"
android:text="确定"
app:layout_constraintBottom_toBottomOf="@+id/btn_cancle"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/btn_cancle"
android:onClick="finishClicked"/>
<Button
android:id="@+id/btn_cancle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="52dp"
android:layout_marginRight="52dp"
android:layout_marginBottom="150dp"
android:text="取消"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
android:onClick="cancleClicked"/>
</android.support.constraint.ConstraintLayout>

MainActivity.java
package com.example.intentdemo;
import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity {
private ListView listView;
private List<Person> list_person = new ArrayList<>();
private ArrayAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Obtain the SupportMapFragment and get notified when the map is ready to be used.
listView = findViewById(R.id.id_listview);
init();
adapter = new ArrayAdapter(this,android.R.layout.simple_list_item_1,list_person);
listView.setAdapter(adapter);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Intent intent = new Intent(MainActivity.this, PersonActivity.class);
Person person = list_person.get(position);
intent.putExtra("person1",person);
intent.putExtra("position",position);
startActivityForResult(intent,1);
//startActivity(intent);
}
});
}
public void init(){
for(int i=0;i<10;i++){
Person person = new Person("zyl"+i,20+i,i%2==0?true:false);
list_person.add(person);
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode==1){
if(resultCode == RESULT_OK){
Person person2 = (Person)data.getSerializableExtra("person2");
int position = data.getIntExtra("position",0);
// list_person.get(position) = person2;
list_person.set(position,person2);
adapter.notifyDataSetChanged();
}
}
}
}
PersonActivity.java
package com.example.intentdemo;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.RadioButton;
public class PersonActivity extends AppCompatActivity {
EditText editText_name;
EditText editText_age;
RadioButton radioButton_man;
RadioButton radioButton_woman;
int position;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.person);
init();
Intent intent = getIntent();
Person person1 = (Person) intent.getSerializableExtra("person1");
position = intent.getIntExtra("position",0);
editText_name.setText(person1.getName());
editText_age.setText(person1.getAge()+"");
radioButton_man.setChecked(person1.isGender());
radioButton_woman.setChecked(!person1.isGender());
}
public void init(){
editText_name = findViewById(R.id.edit_name);
editText_age = findViewById(R.id.editText_age);
radioButton_man = findViewById(R.id.radiobutton_man);
radioButton_woman = findViewById(R.id.radiobutton_woman);
}
public void cancleClicked(View v){
finish();
}
public void finishClicked(View v){
Intent intent = new Intent();
String name = editText_name.getText().toString();
int age = Integer.valueOf(editText_age.getText().toString());
boolean gender = radioButton_man.isChecked();
Person person2 = new Person(name,age,gender);
intent.putExtra("person2",person2);
intent.putExtra("position",position);
setResult(RESULT_OK,intent);
finish();
}
}
Person.java
package com.example.intentdemo;
import java.io.Serializable;
public class Person implements Serializable {
private String name;
private int age;
private boolean gender;
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
", gender=" + gender +
'}';
}
public Person(String name, int age, boolean gender) {
this.name = name;
this.age = age;
this.gender = gender;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public boolean isGender() {
return gender;
}
public void setGender(boolean gender) {
this.gender = gender;
}
}
```

努力做最期待的自己。

浙公网安备 33010602011771号