![](/img/trans.png)
[英]How to disable EditText control during activity load and enable it by user action
[英]How to enable or disable an editText by selecting a spinner
問題是它禁用了文本編輯,但是當你必須再次激活它時,在Switch 1的情況下它不會
這是我正在使用的代碼。
public class ejemolo extends AppCompatActivity {
String[] Items = {
"Dc amps a Kw",
"Ac una fase amp a kw ",
"Ac trifasicaamps a kw (linia a linea de voltaje)",
"Ac trifasica amps a kw (linia a voltaje neutral)",
};
Spinner s1;
private String[] listOfObjects;
EditText ampEditText , voltageEditText , powerfactorEditText ;
TextView text1 , text2 , text3, text4 ;
@RequiresApi(api = Build.VERSION_CODES.N)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_ejemolo);
FloatingActionButton buttonback = (FloatingActionButton)findViewById(R.id.floatingActionButtonback);
buttonback.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(v.getContext() , Weight.class);
startActivityForResult(intent ,0);
}
});
FloatingActionButton buttonhome = (FloatingActionButton)findViewById(R.id.floatingActionButtonhome);
buttonhome.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(v.getContext() , MainActivity.class);
startActivityForResult(intent ,0);
}
});
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
s1 = (Spinner) findViewById(R.id.spinnerAmp);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, Items);
s1.setAdapter(adapter);
ampEditText = (EditText)findViewById(R.id.ampEditText);
voltageEditText = (EditText)findViewById(R.id.voltageEditText);
powerfactorEditText = (EditText)findViewById(R.id.powerfactorEditText);
//text1=(TextView)findViewById(R.id.tonsTextResult1);
//text2=(TextView)findViewById(R.id.tonsTextResult2);
listOfObjects = getResources().getStringArray(R.array.object_array4);
// final Spinner spinner = (Spinner)findViewById(R.id.spinnerAmp);
final android.icu.text.DecimalFormat decimals = new android.icu.text.DecimalFormat("0.00"); /** la cantidad de digitos decimales que se muestra */
// ArrayAdapter<String> spinnerAdapter = new ArrayAdapter<String>(getApplicationContext(),android.R.layout.simple_spinner_item, listOfObjects);
s1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
switch (position) {
case 0 :
int indzex = s1.getSelectedItemPosition();
powerfactorEditText.setFocusable(false);
powerfactorEditText.setEnabled(false);
powerfactorEditText.setCursorVisible(false);
powerfactorEditText.setKeyListener(null);
powerfactorEditText.setBackgroundColor(Color.TRANSPARENT);
break;
case 1:
int index = s1.getSelectedItemPosition();
powerfactorEditText.setEnabled(true);
powerfactorEditText.setInputType(InputType.TYPE_CLASS_TEXT);
powerfactorEditText.setFocusable(true);
powerfactorEditText.setCursorVisible(true);
break;
}
}
@Override
public void onNothingSelected(AdapterView<?> f
}
}
我想在spinner案例2中啟用該問題..
我用這個方法:
switch (position) {
case 0 :
int indzex = s1.getSelectedItemPosition();
//powerfactorEditText.setFocusable(false);
powerfactorEditText.setVisibility(View.GONE);
break;
case 1:
int index = s1.getSelectedItemPosition();
//powerfactorEditText.setFocusable(true);
powerfactorEditText.setVisibility(View.VISIBLE);
break;
}
由於案例0中的這一行,您無法啟用EditText:powerfactorEditText.setKeyListener(null);
請刪除此行並測試否則設置正確的Keylistener。
請參閱下面的鏈接: 編輯文本鍵偵聽器
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.