我有mainactivity
,其中包含两个标签,并包含以下代码:
public class MainActivity extends Activity {
private class MyTabListener implements ActionBar.TabListener
{
private Fragment mFragment;
private final Activity mActivity;
private final String mFrag;
public MyTabListener( Activity activity, String fragName )
{
mActivity = activity;
mFrag = fragName;
}
@Override
public void onTabReselected( Tab tab, FragmentTransaction ft )
{
// TODO Auto-generated method stub
}
@Override
public void onTabSelected( Tab tab, FragmentTransaction ft )
{
mFragment = Fragment.instantiate( mActivity, mFrag );
ft.add( android.R.id.content, mFragment );
}
@Override
public void onTabUnselected( Tab tab, FragmentTransaction ft )
{
ft.remove( mFragment );
mFragment = null;
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ActionBar ab = getActionBar();
ab.setNavigationMode( ActionBar.NAVIGATION_MODE_TABS );
Tab tab = ab.newTab()
.setText( "Current Trip" )
.setTabListener(
new MyTabListener( this, current.class.getName() ) );
ab.addTab( tab );
tab = ab.newTab()
.setText( "Display Result" )
.setTabListener(
new MyTabListener( this, display.class.getName() ) );
ab.addTab( tab );
File folder = new File(Environment.getExternalStorageDirectory() + "/tc");
boolean success = true;
if (!folder.exists()) {
//Toast.makeText(MainActivity.this, "Directory Does Not Exist, Create It", Toast.LENGTH_SHORT).show();
success = folder.mkdir();
}
if (success) {
//Toast.makeText(MainActivity.this, "Directory Created", Toast.LENGTH_SHORT).show();
} else {
//Toast.makeText(MainActivity.this, "Failed - Error", Toast.LENGTH_SHORT).show();
}
}
}
如何传递current.class
的edittext数据,以便在display.class
中显示并用于计算?
答案 0 :(得分:1)
我建议您使用共享首选项,例如
this is the frag that "writes":
private SharedPreferences prefs; // shared preferences
prefs = getActivity().getSharedPreferences("spa", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit();
editor.putString("someId", "something"); //or you can use putInt, putBoolean ...
editor.commit();
this is the frag the "reads"
prefs = getActivity().getSharedPreferences("spa", Context.MODE_PRIVATE);
String someId=prefs.getString("someId",someId);
或者你可以从另一个片段中调用一个片段中的a方法(最好通过mainactivity而不是直接来实现)。
from frag 1:
((activity)getActivity()).somemethod();
in activity:
fragment2 fragment = (fragment2) getSupportFragmentManager().findFragmentByTag("fragment2");
fragment.somemethod();