我想设置一些EditTexts文本点击列表中的项目后。Android - 尝试从SQLite打开一行成多个片段
活动:
- CadPersonActivity
而且三个片段,每一个有字段:
- FragmentPersonId
- FragmentPersonAddress
- FragmentPersonPhones
但是那些EditTexts坚持不显示什么我预计。 没有错误,但空白字段。
我希望有人能帮助我。
在此先感谢。
酶活性的影响
CadPersonActivity恢复标识捆绑演员:被点击的记录,它的编号传递到CadPersonActivity时
public class CadPersonActivity extends FragmentActivity implements TabListener {
private ActionBar actionBar;
private ViewPager viewPager;
private PersonPageAdapter pageAdapter;
private Person person;
private PersonDAO bd;
private Bundle extras;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_cad_person);
extras = getIntent().getExtras();
actionBar = getActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
pageAdapter = new PersonPageAdapter(getSupportFragmentManager());
viewPager = (ViewPager) findViewById(R.id.pager);
viewPager.setAdapter(pageAdapter);
viewPager.setPageTransformer(true, new ZoomOutPageTransformer());
viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageSelected(int position) {
actionBar.setSelectedNavigationItem(position);
}
@Override
public void onPageScrollStateChanged(int arg0) {
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
}
});
actionBar.addTab(actionBar.newTab().setText(getString(R.string.tab_id)).setTabListener(this));
actionBar.addTab(actionBar.newTab().setText(getString(R.string.tab_address)).setTabListener(this));
actionBar.addTab(actionBar.newTab().setText(getString(R.string.tab_phones)).setTabListener(this));
if (extras.getInt("id") > 0) {
bd = new PersonDAO(getApplicationContext());
person = bd.getPerson(extras.getInt("id"));
callSetFields();
}
}
@Override
protected void onDestroy() {
super.onDestroy();
if (bd != null)
bd.close();
}
public void onTabSelected(Tab tab, FragmentTransaction ft) {
viewPager.setCurrentItem(tab.getPosition());
}
public void onTabUnselected(Tab tab, FragmentTransaction ft) {
}
public void onTabReselected(Tab tab, FragmentTransaction ft) {
}
private void callSetFields() {
try {
FragmentPersonId fragId = (FragmentPersonId) getSupportFragmentManager().findFragmentById(R.id.fragment_id);
fragId.setFields(person);
FragmentPersonAddress fragEndereco = (FragmentPersonAddress) getSupportFragmentManager().findFragmentById(R.id.fragment_endereco);
fragEndereco.setFields(person);
FragmentPersonPhones fragPhones = (FragmentPersonPhones) getSupportFragmentManager().findFragmentById(R.id.fragment_phones);
fragPhones.setFields(person);
} catch (Exception e) {
Toast.makeText(getApplicationContext(), "An error occurred while trying to open the record.", Toast.LENGTH_SHORT).show();
}
}
}
CallSetFields被调用。
的activity_cad_person.xml:
<android.support.v4.view.ViewPager xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent">
<fragment
android:id="@+id/fragment_id"
android:name="com.fragment.FragmentPersonId"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
tools:layout="@layout/fragment_id" />
<fragment
android:id="@+id/fragment_address"
android:name="com.fragment.FragmentPersonAddress"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
tools:layout="@layout/fragment_address" />
<fragment
android:id="@+id/fragment_phones"
android:name="com.fragment.FragmentPersonPhones"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
tools:layout="@layout/fragment_phones" />
</android.support.v4.view.ViewPager>
片段:
而且每个片段有一个这样的代码:
public class FragmentPersonId extends Fragment {
private EditText edtName;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_id, container,
false);
return view;
}
public void setFields(Pessoa pessoa) {
try {
edtName = (EditText) getView().findViewById(R.id.edtName);
edtName.setText(person.getName());
} catch (Exception e) {
Toast.makeText(getActivity().getApplicationContext(), "Error while setting fields.", Toast.LENGTH_SHORT).show();
}
}
}