我想集中到editText
結束的時候我回來從其他活動的活動設置數據後的onCreate()空。 我通過viewName
與Intent
過濾要查看值得重點關注。 我使用ViewModel
- Data Binding
模型類將數據設置爲views
EditText.getText()。的toString()是視圖模型
問題 我可以從意圖和觀點也集中獲取值,但我不能讓文字的大小設置光標到結束在editText
文本。雖然值設置爲每個意見,我可以看到和做其他的東西與價值。唯一的問題是getText().toString()
在開始最後將焦點設置。
bindingName.viewName.getText().toString()
總是空從而光標停留在開頭。
此問題,如果我打電話在OnCreate()或的onResume()狀態下的requestFocus
發生。但如果我把它放到稍後執行的某些方法上,可以正常工作。
的Java Step1.class
public class Step1 extends Activity implements AdapterView.OnItemSelectedListener, View.OnClickListener {
Step1Binding step1Binding;
....
SubmittedModel submittedModel;
boolean isTerritorySet = false;
boolean isCeNameSet = false;
boolean isDistributorSet = false;
boolean isPSRSet = false;
boolean isInEditMode = false;
String viewName;
private ArrayList<ArrayList<String>> areaList = new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
step1Binding = DataBindingUtil.setContentView(this, R.layout.layout_step1);
.....
submittedModel = new SubmittedModel();
submittedModel.setUser_id(UserInfo.getInstance().getUserInfo(this).getUserId());
.....
if (getIntent().hasExtra("value")) {
submittedModel = (SubmittedModel) getIntent().getSerializableExtra("value");
step1Binding.setSubmitData(submittedModel);
}
if (getIntent().hasExtra("edit")) {
isInEditMode = getIntent().getBooleanExtra("edit", false);
if (isInEditMode) {
step1Binding.backBtn.setVisibility(View.VISIBLE);
}
}
if (getIntent().hasExtra("viewName")){
viewName =getIntent().getStringExtra("viewName");
requestFocusOnSelectedView(); //Method to select views
}
.....
}
.......
void requestFocusOnSelectedView() {
//request focus
if (isInEditMode & viewName != null) {
switch (viewName) {
case ViewName.territory:
step1Binding.territoryList.requestFocus();
break;
case ViewName.ceName:
step1Binding.ceNameList.requestFocus();
break;
case ViewName.distributor:
step1Binding.distributorList.requestFocus();
break;
case ViewName.psr:
step1Binding.psrNameList.requestFocus();
break;
case ViewName.subRoute:
step1Binding.subRoute.requestFocus();
step1Binding.subRoute.setSelection(step1Binding.subRoute.getText().length());
break;
case ViewName.outlet:
step1Binding.outletName.requestFocus();
step1Binding.outletName.setSelection(step1Binding.outletName.getText().length());
break;
case ViewName.retailerName:
step1Binding.retailerName.requestFocus();
step1Binding.retailerName.setSelection(step1Binding.retailerName.getText().length());
break;
case ViewName.retailerMobile:
step1Binding.retailerMobile.requestFocus();
step1Binding.retailerMobile.setSelection(step1Binding.retailerMobile.getText().length());
break;
case ViewName.address:
step1Binding.address.requestFocus();
step1Binding.address.setSelection(step1Binding.address.getText().length());
break;
}
}
}
}
XML +數據模型:代碼工作正常
更清潔的方法!謝謝 –