Disattivare la testiera standard di android per usare la mia tastiera personalizzata
Salve ragazzi,
ho un piccolo problema con la mia app dove vorrei disattivare la tastiera android per poter usare la mia. In pratica dopo aver creato dinamicamente un array di edittex cliccandoci su dovrebbe comparire la mia keyboard invece che quella di android.
Il giochino funziona in effetti si attiva la mia tastiera ma devo cliccare due volte sulla esittext per permettere di scrivere altrimenti scrive su quella selezionata precedentemente.
Posto il pezzo di codice interessato:
public class Main extends Activity implements OnClickListener {
// Variables Declaration
private EditText mEt, mEt1; // Edit Text boxes
private int a = 0, j=-1, i;
private RelativeLayout mLayout, mKLayout;
private EditText[] editTextArray = new EditText[2]; //Array EditText
private Button tasto[] = new Button[31]; //Array Button
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mEt1 = (EditText) findViewById(R.id.et1); //First EditText
mLayout = (RelativeLayout) findViewById(R.id.xK1); //Layout of my keyboard
mKLayout = (RelativeLayout) findViewById(R.id.xKeyBoard); //Layout of my keyboard
mEt = (EditText) findViewById(R.id.xEt); //Second EditText
editTextArray[0] = mEt;
editTextArray[1] = mEt1;
for(int i = 0; i < 2; i++){
editTextArray[i].setOnClickListener(this);
//Disable default keyboard
editTextArray[i].setInputType(0);
InputMethodManager imm = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(editTextArray[i].getWindowToken(), 0);
}
}
@Override
public void onClick(View v) {
for (i =0 ; i < 2; i++){
if(v == editTextArray[i] ){
if(j!=i){ // Set the index of editText where write
j=i;
a = 1;
enableKeyboard(); // Enable my keyboard
}
}
}
}
@Override // Set onBack
public void onBackPressed() {
if (a == 1){
disableKeyboard() ;
j=-1;
a = 0;
}else{
finish();
}
}
// enabling customized keyboard
private void enableKeyboard() {
mLayout.setVisibility(RelativeLayout.VISIBLE);
mKLayout.setVisibility(RelativeLayout.VISIBLE);
}
// Disable customized keyboard
private void disableKeyboard() {
mLayout.setVisibility(RelativeLayout.INVISIBLE);
mKLayout.setVisibility(RelativeLayout.INVISIBLE);
}
}