2012-02-03 28 views
6

Ví dụ, Trong một cái nhìn danh sách được tổ chức bởi ListActivity, khi người dùng nhấp chuột vào một mục trong danh sách, một hoạt động mới sẽ được ra mắt, và chuyển giao hoạt động trước đó thêm dữ liệu cho hoạt động mới như sau:làm thế nào để chuyển dữ liệu thêm từ một mảnh sang người khác qua hoạt động

public class Notepadv2 extends ListActivity { 
    ... 

    @Override 
    protected void onListItemClick(ListView l, View v, int position, long id) { 
     super.onListItemClick(l, v, position, id); 

     Intent i = new Intent(this, NoteEdit.class); 
     i.putExtra(NotesDbAdapter.KEY_ROWID, id); 
     startActivityForResult(i, ACTIVITY_EDIT); 
    } 
} 

Làm thế nào để tôi sử dụng phân đoạn? Ý tôi là nếu tôi có một Hoạt động mà máy chủ 2 mảnh, và làm cho các mảnh vỡ các giao dịch như dưới đây:

// Create new fragment and transaction 
Fragment newFragment = new ExampleFragment(); 
FragmentTransaction transaction = getFragmentManager().beginTransaction(); 

// Replace whatever is in the fragment_container view with this fragment, 
// and add the transaction to the back stack 
transaction.replace(R.id.fragment_container, newFragment); 
transaction.addToBackStack(null); 

// Commit the transaction 
transaction.commit(); 

làm thế nào tôi có thể chuyển thêm số liệu từ một đoạn đến đoạn khác thông qua các hoạt động máy chủ?

Tôi biết trên trang web của nhà phát triển Android, có một good document về cách sử dụng mảnh và làm thế nào để giao tiếp với các hoạt động, nhưng không có mô tả về cách chuyển dữ liệu từ một đoạn khác ....

+1

bản sao có thể có của [Android: Truyền dữ liệu (bổ sung) cho một đoạn] (http://stackoverflow.com/questions/15392261/android-pass-dataextras-to-a-fragment) –

Trả lời

22

sử dụng

Bundle data = new Bundle(); 
data.putString("name",value); 
Fragment fragment = new nameOfFragment(); 
fragment.setArguments(data); 
.navigateTo(fragment); 
+0

Bạn có nghĩa là tôi không cần xác định giao diện trong phân đoạn và để cho hoạt động của máy chủ thực hiện giao diện thiết lập giao tiếp giữa phân mảnh và trọng lượng máy chủ ... thay vào đó, tôi có thể sử dụng mã của bạn để điều hướng trực tiếp đến đoạn tiếp theo? –

+0

có bạn có thể sử dụng nó trực tiếp .... –

+0

@its không trống Bạn có thể vui lòng đổ thêm ánh sáng vào .navigateTo (đoạn); android studio dường như không nhận ra điều này – archon92

1

Từ Hoạt động bạn gửi dữ liệu với mục đích như:

Bundle bundle = new Bundle(); 
bundle.putString("key", "value"); 
// set Fragmentclass Arguments 
Fragmentclass fragmentobj = new Fragmentclass(); 
fragmentobj.setArguments(bundle); 

và trong phương pháp Fragment onCreateView:

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
     Bundle savedInstanceState) { 
    String strtext = getArguments().getString("key");  
    return inflater.inflate(R.layout.fragment, container, false); 
} 

Tôi hy vọng nó sẽ giúp bạn đầy đủ.

Các vấn đề liên quan