を使用してViewpager
3を切り替えfragments
ていますが、2番目のタブ(またはfragment
)の更新を除いて、すべて正常に機能しています。このタブには、画像、静的Textviews
、動的TextViews
、およびEditText
フィールドがあります。
2番目のタブが選択されるたびに、setText()
すべての動的フィールドで呼び出されます。TextViewコンポーネントとスピナーはコンテンツを更新および更新していますが、EditText要素は更新していません。これらのフィールドが更新されない理由がわかりません。タブを変更した後、を呼び出しnotifiyDataSetChanged()
ますTabsAdapter
。onViewCreated()
タブを変更するたびに呼び出されます。2onViewCreated()
番目のフラグメントでは、要素の内容を変更しています。
それが私のフラグメントのコードです:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
hA = (HelloAndroidActivity)this.getSherlockActivity();
appState = ((TestApplication)this.getSherlockActivity().getApplicationContext());
final PersistenceHelper pH = new PersistenceHelper(appState);
m = pH.readMitarbeiter(toDisplay);
// Inflate the layout for this fragment
v = inflater.inflate(R.layout.detailfragment, container, false);
if(m==null) {
//If Mitarbeiter is empty
pH.closeDB();
return v;
}
//Inflating Elements
employeeName = (TextView)v.findViewById(R.id.employee_name);
cDate = (TextView)v.findViewById(R.id.department);
currentPlace = (TextView)v.findViewById(R.id.place_label);
comment_text = (EditText)v.findViewById(R.id.comment_text);
reachable = (EditText)v.findViewById(R.id.reachable_text);
state = (Spinner)v.findViewById(R.id.spinner_state);
durchwahl = (EditText)v.findViewById(R.id.durchwahl);
department = (EditText)v.findViewById(R.id.department_edit);
email = (EditText)v.findViewById(R.id.email_edit);
img = (ImageView)v.findViewById(R.id.userPic);
changeData = (Button)v.findViewById(R.id.changeButton);
//Setting Elements
employeeName.setText(m.getL_name());
currentPlace.setText(m.getStatus());
comment_text.setText(m.getBemerkung());
reachable.setText(m.getErreichbar());
email.setText(m.getS_name()+"");
durchwahl.setText(m.getDurchwahl()+"",TextView.BufferType.EDITABLE);
department.setText(m.getFunktion(),TextView.BufferType.NORMAL);
//Spinner
String[] values = { "Anwesend", "Mittagspause" , "Ausser Haus" , "Dienstreise", "Krankenstand" ,"Zeitausgleich", "Urlaub","Abwesend" };
ArrayAdapter spinnerArrayAdapter = new ArrayAdapter(this.getSherlockActivity(), android.R.layout.simple_spinner_item,values);
state.setAdapter(spinnerArrayAdapter);
state.setSelection(StateMapper.returnState(m.getStatus()));
//Image
//.......
return v;
}
前に述べたように、私のImage、TextView、SpinnerElementsはコンテンツを更新しています。また、すべての変数の内容を確認しました。これらのEditText要素を除いて、すべて問題ないようです。EditText要素をTextViewにキャストすると、コンテンツが変更されます(コードでは変更されますが、GUIでは変更されません)。また、私が必死になっているのは、最初に値を設定したときにEditTextが更新されることです。
EditText
自分のフィールドのコンテンツをどのように更新できるか、誰かアイデアがありますか?