2014-01-14 164 views
0

我有一个名为AddPlayerFragment的片段,它需要一些字符串。我是这样做的..从一个片段发送值到另一个片段

public Dialog onCreateDialog(Bundle savedInstanceState) { 

    AlertDialog.Builder alert = new AlertDialog.Builder(getActivity()); 
    alert.setTitle("Add Player"); 

    // Set an EditText view to get user input 
    final EditText input = new EditText(getActivity()); 
    alert.setView(input); 

    alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() { 
     @Override 
     public void onClick(DialogInterface dialog, int whichButton) { 
      String value = input.getText().toString(); 

      dialog.dismiss(); 

      return; 
     } 
    }); 

    alert.setNegativeButton("Cancel", 
      new DialogInterface.OnClickListener() { 

       @Override 
       public void onClick(DialogInterface dialog, int which) { 
        // TODO Auto-generated method stub 
        return; 
       } 
      }); 
    return alert.show(); 
}} 

我想从变量值该字符串值让我叫Scorecard_Fragment另一个片段。我绝对是Android开发的初学者。任何建议?我有一些线索可以通过Bundle或Intent做到,但不知道怎么做!

+0

解决了这个问题.. – muktoshuvro

+0

Bundle bundle = new Bundle(); bundle.putString(“message”,value); MyBundles.scorePLayer = value; ((Scorecard_Fragment)MainActivity.getFragment())。scorePlayer(value); – muktoshuvro

回答

2

传输数据,如这个 -

Bundle bundle = new Bundle(); 
    bundle.putString("message", value); 
    Scorecard_FragmentfragInfo = new Scorecard_Fragment(); 
    fragInfo.setArguments(bundle); 
    transaction.replace(R.id.fragment_single, fragInfo); 
    transaction.commit(); 
0

容易...使用sharedpreferences?

final SharedPreferences prefs = getSharedPreferences("my_prefs, 0); 

alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() { 
    @Override 
    public void onClick(DialogInterface dialog, int whichButton) { 
     String value = input.getText().toString(); 

     prefs.edit().putString("myvalue", value).commit(); 

     dialog.dismiss(); 

     return; 
    } 
}); 

在您的片段你可以检索然后将它与您的方法如下:

final SharedPreferences prefs = getSharedPreferences("my_prefs", 0); 
String myPreviousValue = prefs.getString("myvalue", ""); 

或者去捆绑包与张贴阿米特的解决方案。在我看来,SharedPreferences更好,因为您可以轻松地将它们放在任何地方,以便在没有硬件代码的情况下进一步使用,方法是将捆绑包转移到您需要值的每个片段中。

0

创建您Scorecard_Fragment公共变量:

public String variable; 

然后在AddPlayerFragment:

String value = input.getText().toString(); 
Scorecard_Fragment fragInfo = new Scorecard_Fragment(); 
fragInfo.variable = value; 
transaction.replace(R.id.fragment_layout, fragInfo); 
transaction.commit(); 
0

解决了这个问题.. AddplayerFragment

Bundle bundle = new Bundle(); 
bundle.putString("message", value); 
MyBundles.scorePLayer = value; 
((Scorecard_Fragment) MainActivity.getFragment()).scorePlayer(value); 

通过这个类

public class MyBundles { 
public static String scorePLayer = ""; 
} 
相关问题