【发布时间】:2015-03-12 09:54:00
【问题描述】:
大家好,我正在开发一个应用程序,为了解释我的情况,我创建了一个简单的插画家。当我单击另一个活动中的按钮时,我想将数据发送到片段。我使用 bundle 它给了我空指针异常。我试图在另一个活动中使用方法,它再次给了我错误。我如何将数据从 Activity 传递到 Fragment 提前谢谢。
这是我的代码。
Edit1 : 我想我解释错了。看看我上传的照片。当我单击白色按钮时,另一个活动正在打开。当我在另一个活动中输入一些文本并单击另一个活动中的按钮时,我想发送数据片段类。我希望我能够解释。谢谢。
MainActivity
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btn = (Button) findViewById(R.id.button2);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(MainActivity.this,AnotherActivity.class);
startActivity(i);
}
});
}
}
另一个活动
public class AnotherActivity extends Activity {
EditText et;
Button btn;
public String ets;
FragmentClass myFragment = new FragmentClass();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.anotheractivity);
btn = (Button) findViewById(R.id.button);
et= (EditText) findViewById(R.id.editText);
ets = et.getText().toString();
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
myFragment.Test(ets);
}
});
}
}
片段
public class FragmentClass extends Fragment {
TextView tv;
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment,container,false);
tv = (TextView)v.findViewById(R.id.textView);
return v;
}
public void Test(String name){
Toast.makeText(getActivity(),name,Toast.LENGTH_SHORT).show();
}
}
【问题讨论】:
-
片段附加到哪个活动。在图像中它附加到 MainActivity
-
是的,片段附加到主活动,我想将数据从另一个活动发送到片段。 (不是:主要活动片段)
-
你可以使用
startActivityForResult覆盖onActivityResult。 -
你也可以使用第三方库,比如greenrobots eventbus
-
我无法理解您的问题。你想在 2 个活动之间交流信息,并且你想在一个片段中使用它。我说的对吗?
标签: java android android-fragments