저는 지금 안드로이드를 개발해 왔으며, 전에이 문제를 직접 경험하지 못했습니다. sharedprefs에서 자신을 채우는 여러 EditText 및 autocompleTextViews가 있습니다. 문제는 뷰가 텍스트를 표시하지 않는다는 것입니다. 그들은 활동을 떠나고 돌아올 때까지 그곳에 있었던 오래된 가치를 보여줍니다. 이상한 부분은 잘못된 값이 표시 될 때 editText에서 getText 함수를 호출하면 getText()가 올바른 값을 반환한다는 것입니다. 누군가가 왜 이런지 설명해 주실 수 있습니까?EditText getText()는 표시되는 것과 다른 값을 반환합니다.
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState){
view = inflater.inflate(R.layout.extra_info, container, false);
myPrefs = PreferenceManager
.getDefaultSharedPreferences(getActivity());
initPrefs();
findTextViews();
findViews();
initDataSource();
runQueries();
getAllFields();
return view;
}
private void findViews() {
EditPayID = (AutoCompleteTextView)view.findViewById(R.id.EditpayID);
EditPayID.setText(PayIDPref);
Log.e("findviews",EditPayID.getText().toString());
//^^ correct value but screen still displays wrong value
}
private void initPrefs(){
editor = myPrefs.edit();
PayIDPref = myPrefs.getString("PayID", "");
Log.e("payidPref", PayIDPref);
}
내가 생각하는 다음 코드는이 문제와 관련이 있지만 어쩌면 내가 뭔가 말이냐하면이 payID
EditPayID.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
EditPayID.showDropDown();
EditPayID.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
String selected = EditPayID.getAdapter().getItem(arg2).toString();
EditPayID.setText(selected);
editor.putString("PayID" ,selected);
editor.apply();
}
});
return false;
}
});
EditPayID.setValidator(new android.widget.AutoCompleteTextView.Validator() {
@Override
public boolean isValid(CharSequence text) {
Log.e("in pay isValid" , "validating");
Collections.sort(validPays);
if (Collections.binarySearch(validPays, text.toString()) >= 0){
return true;
}
return false;
}
@Override
public CharSequence fixText(CharSequence invalidText) {
EditPayID.setError("You have Entered invalid PayID");
editor.putString("PayID" ,"Invalid PayID");
editor.apply();
return "Invalid PayID";
}
});
코드를 제공 할 수 있습니까? – Jim
나는 그것이 도움이 될 것이라고 확신 할 수는 없다. 아쉽게 게시합니다 – KBusc
귀하의 공유 환경 설정에 새로운 가치를 제대로 저장하지 않은 것으로 보입니다. – Tobiel