私はすでにいくつかの例を見ましたが、フラグメントの新しいインスタンスを作成するため、使用できません。Androidのデータをアクティビティからフラグメントに移動する新しいインスタンスを作成しないで
MainActivityのボタンをクリックすると、FragmentActivityが読み込み3フラグメントになります。
MainActivityからFragment_Bにipとportを渡したいとします。
私のやり方が機能していません。
のjava.lang.NullPointerException:上の仮想メソッドを呼び出すための試み 'はjava.lang.String型android.os.Bundle.getString(java.lang.String)を' NULLオブジェクト参照
MainActivity:
public class MainActivity extends Activity {
TextView response;
EditText editTextAddress, editTextPort;
Button buttonConnect, buttonClear;
public static String ip = "192.168.2.2";
public static int porta = 6000;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);
editTextAddress = (EditText) findViewById(R.id.txt_ip);
editTextPort = (EditText) findViewById(R.id.txt_porta);
buttonConnect = (Button) findViewById(R.id.btn_conetar);
//buttonClear = (Button) findViewById(R.id.clearButton);
buttonConnect.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
ip = editTextAddress.getText().toString();
porta = Integer.parseInt(editTextPort.getText().toString());
Fragmento_B f = new Fragmento_B();
Bundle args = new Bundle();
args.putString("IP",ip);
args.putInt("PORTA",porta);
f.setArguments(args);
Intent i = new Intent(MainActivity.this,Main2Activity.class);
startActivity(i);
}
});
}
フラグメント活性(これはすべてのフラグメントをロード)
このIntent i = new Intent(MainActivity.this,Main2Activity.class);
i.putExtra("IP",ip);
i.putExtra("PORTA",porta);
startActivity(i);
等MainActivity
からMain2Activity
args.putString("IP",ip);
args.putInt("PORTA",porta);
に意図で
public class Main2Activity extends FragmentActivity {
private TabLayout mTabLayout;
private ViewPager mViewPager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main2);
mTabLayout = (TabLayout) findViewById(R.id.tab_layout);
mViewPager = (ViewPager) findViewById(R.id.view_pager);
mViewPager.setAdapter(new FragmentoAdapter(getSupportFragmentManager(),getResources().getStringArray(R.array.tiles_tab)));
mViewPager.setOffscreenPageLimit(3);
mTabLayout.setupWithViewPager(mViewPager);
}
}
FRAGMENT B
これが解決策であります –