Hỏi về cách xử lý activity trong android
Hiện tại mình đang bị bug kia, cơ mà lại không biết search google như thế nào với nó.
Lỗi cụ thể như sau: Mình đang ở Main_Activity —> Bấm button —> Activity_2 —> Bấm button —> Main_Activity.
Ở Main_Activity là mình hiển thị danh sách các item, còn Activity_2 là dùng để thêm 1 item mới vào danh sách đó.
Mọi thứ đều hoạt động tốt cho đến khi mình bấm nút back, thì nó quay lại thẳng Activity_2, những Edittext đều giữ y nguyên không thay đổi gì, bấm thêm lần nữa là quay lại danh sách lúc chưa thêm item kia vào luôn.
Edit1:
Main_Activity.java (Tên mang tính tượng trưng)
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){
View rootView = inflater.inflate(R.layout.fragment_quanlyvideo,container,false);
listVideo = rootView.findViewById(R.id.video_list_item);
addVideo = rootView.findViewById(R.id.float_button_add_video);
luuY = rootView.findViewById(R.id.luuY_video_list_item);
addVideo.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent i = new Intent(getActivity(), AddVideoActivity.class);
startActivity(i);
}
});
}
Activity_2.java (Tên mang tính tượng trưng)
public class AddVideoActivity extends AppCompatActivity {
private EditText maVideo, tenVideo, soLuong, gia;
private Button buttonThem;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_add_video);
maVideo = findViewById(R.id.editTextMaVideo_Add_Video);
tenVideo = findViewById(R.id.editTextTen_Add_Video);
soLuong = findViewById(R.id.editTextSoLuong_Add_Video);
gia = findViewById(R.id.editTextGia_Add_Video);
buttonThem = findViewById(R.id.buttonThem_Video);
buttonThem.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(checkInput()){
DatabaseHandler dh = new DatabaseHandler(view.getContext());
Video vd = new Video();
vd.setId(maVideo.getText().toString());
vd.setTen(tenVideo.getText().toString());
vd.setSoLuong(Integer.parseInt(soLuong.getText().toString()));
vd.setGia(Integer.parseInt(gia.getText().toString()));
dh.addVideo(vd);
dh.close();
Intent i = new Intent(getApplicationContext(), Homepage.class);
i.putExtra("job",1);
startActivity(i);
}
}
});
}
Talk is cheap, show me your code
Xem lại các Activity Callback nha bạn.
Bên iOS có hàm viewDidLoad gọi 1 lần khi tạo, tương tự onCreate bên Android. iOS có viewWillAppear, gọi mỗi lần controller được active, bạn tìm callback tương tự bên Android. Bạn chỉ cần viết code cập nhật giao diện trong viewWillAppear là hết lỗi back button
Show code ra đây xem nào
Mình đã up code lên rồi, mọi người giúp mình với.
yêu cầu bạn đặt đúng tên, không cần tượng trưng gì hết vì code của bạn không đồng bộ với cái tên tượng trưng của bạn
Còn thằng cờ hó này nữa bạn ơi, code của nó đâu ? [quote=“Manh_Lieu, post:1, topic:53772”]
dh.addVideo(vd);
dh.close();
[/quote]
Bạn debug xem có add thành công chưa ?
Từ ActivityA bạn nên sử dụng startActivityForResult nha, sau đó, khi bấm button ở Activity2 thì setResult về cho nó là được nha, chứ đừng start một Activity mới vào lúc này.