cuốn sách gpt4 ai đã làm

android - Cách thay thế một đoạn bằng một đoạn khác bằng cách sử dụng trình nghe trong đoạn đầu tiên

In lại Tác giả: Taklimakan Thời gian cập nhật: 2023-11-02 19:52:10 28 4
mua khóa gpt4 Nike

Tôi đang sử dụng hai đoạn trong Hoạt động của mình. Ban đầu tôi sẽ thêm một đoạn vào Hoạt động. Sau đó, sử dụng trình nghe trong đoạn đầu tiên, tôi muốn thay thế nó bằng đoạn thứ hai. Tôi đã thử theo sự hiểu biết của mình nhưng nó không thay thế được. Nó cho thấy hai mảnh chồng lên nhau.

Đây là mã của tôi:

// Hoạt động chính


lớp công khai MainActivity mở rộng Hoạt động {
Mảnh vỡ_một;
Nút một;

@Ghi đè
khoảng trống được bảo vệ trênCreate(Gói đã lưuInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//one=(Button) findViewById(R.id.button1);
//one.setOnClickListener(Chế độ xem mới.OnClickListener() {

//@Ghi đè
// public void onClick(View arg0) {
// TODO sơ khai phương thức được tạo tự động
FragmentManager man=getFragmentManager();
FragmentTransaction tran=man.beginTransaction();
Fragment_one=Đoạn mới1();
tran.add(R.id.fragment_container, Fragment_one);//tran.
tran.addToBackStack(null);
tran.commit();

//}
//});

}


}
// mã đoạn

lớp công khai Fragment1 mở rộng Fragment{
Nút thêm;
Fragment2 mảnh_hai;

@Ghi đè
Chế độ xem công khai trênCreateView(LayoutInflater inflater, ViewGroup container,
Gói đã lưuInstanceState) {
// TODO sơ khai phương thức được tạo tự động
//return super.onCreateView(inflater, container, saveInstanceState);

Xem view=inflater.inflate(R.layout.fragment_1, container,false);
add=(Button) view.findViewById(R.id.button1);
Fragment_two =Đoạn mới2();
add.setOnClickListener(new View.OnClickListener() {

@Ghi đè
khoảng trống công khai trênClick(Xem v) {
// TODO sơ khai phương thức được tạo tự động
FragmentTransaction t=getActivity().getFragmentManager().beginTransaction();
t.remove( new Fragment1());

t.replace(R.id.fragment1, Fragment_two);t.addToBackStack(null);
t.commit();
//t.addToBackStack(null);

}
});


quay lại xem;
}
}

màn hình đầu ra

câu trả lời hay nhất

Tôi thấy điều gì đó trong mã của bạn.

t.remove(new Fragment1());

Dòng mã này không làm gì cả vì bạn đang cố xóa một phiên bản mới của Fragment1 chứ không phải phiên bản bạn đã thêm ban đầu.

t.replace(R.id.fragment1, Fragment_two)

Tham số đầu tiên phải là ID của vùng chứa "R.id.fragment_container", không phải R.id.fragment1.

t.addToBackStack(null);

Mã này có thể cần hoặc không tùy thuộc vào việc bạn có muốn cho phép người dùng nhấn nút Quay lại để quay lại đoạn_one sau khi đến đoạn2 hay không.

Về Android - cách thay thế một đoạn này bằng một đoạn khác bằng cách sử dụng trình nghe trong đoạn đầu tiên, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/19193570/

28 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress