Мне нужно передать некоторые значения фрагменту из класса Activity. Я попытался передать пучок фрагменту, но получил нулевое значение. Мне нужно получить значения, а затем запустить AsyncTask в активности фрагмента.Передача строки в фрагмент из действия
Фрагмент кода FirstFragment.java:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
v = inflater.inflate(R.layout.first_frag, container, false);
Bundle bundle = getArguments();
if(bundle!=null)
{
sensorUID=getArguments().getString("senID");
System.out.println("we got this: " + sensorUID);
}
System.out.println("we got this2: "+ sensorUID);
new MyAsyncTask().execute();
return v;
}
Код (класс активности):
package test.sensorv2;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
public class scatter extends FragmentActivity {
protected String sensorUID;
protected String tankname;
protected String SCALE_M;
protected String SCALE_C;
protected String DPs;
protected String UNITs;
String np;
int k = 0;
float m;
float c;
int numVar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_scatter);
sensorUID = getIntent().getStringExtra("sUID");
tankname = getIntent().getStringExtra("tNAME");
SCALE_C = (getIntent().getStringExtra("tSCALEC"));
SCALE_M = (getIntent().getStringExtra("tSCALEM"));
DPs = (getIntent().getStringExtra("tDP"));
UNITs = (getIntent().getStringExtra("tUNIT"));
numVar = Integer.parseInt(DPs);
Bundle b=new Bundle();
b.putString("key", sensorUID);
FirstFragment f=new FirstFragment();
f.setArguments(b);
ViewPager pager = (ViewPager) findViewById(R.id.viewPager);
pager.setAdapter(new MyPagerAdapter(getSupportFragmentManager()));
}
private class MyPagerAdapter extends FragmentPagerAdapter {
public MyPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int pos) {
switch (pos) {
case 0:
return FirstFragment.newInstance("FirstFragment, Instance 1");
case 1:
return SecondFragment.newInstance("SecondFragment, Instance 1");
default:
return ThirdFragment.newInstance("ThirdFragment, Default");
}
}
@Override
public int getCount() {
return 3;
}
}
}
Посмотрите здесь: http://stackoverflow.com/questions/19894681/android-pass-a-value-from-container-activity-to-its-fragment – TheCrafter
@ TheCrafter Я попробовал это. Он не может найти putInt или putString для намерения –