Autore Topic: Disattivare la tastiera standard per usare la mia tastiera personalizzata  (Letto 1420 volte)

Offline bisemanu

  • Nuovo arrivato
  • *
  • Post: 43
    • Mostra profilo
  • Dispositivo Android:
    Motorola Defy+ Acer Liquid A1
  • Sistema operativo:
    Mac OS X 10.7 Windows 7
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.setOnClickListener(this);

//Disable default keyboard
editTextArray.setInputType(0);
InputMethodManager imm = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(editTextArray.getWindowToken(), 0);
}
}

@Override
public void onClick(View v) {

for (i =0 ; i < 2; i++){
if(v == editTextArray ){

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);

}
}

Offline Acca.Emme

  • Nuovo arrivato
  • *
  • Post: 38
    • Mostra profilo
  • Sistema operativo:
    Ubuntu
Re:Disattivare la tastiera standard per usare la mia tastiera personalizzata
« Risposta #1 il: 09 Gennaio 2013, 01:20:17 CET »
Non vorrei dire una sciocchezza, spero tra l'altro che ciò ti possa essere utile in quanto anche io sto cercando informazioni a riguardo

Per creare una tastiera personalizzata non è meglio gestire un xml?
Vedi: http://zweichxu.iteye.com/blog/1120252

o in italiano: android - Creating a SoftKeyboard with Multiple/Alternate characters per key - Stack Overflow

Offline Nicola_D

  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:Disattivare la tastiera standard per usare la mia tastiera personalizzata
« Risposta #2 il: 09 Gennaio 2013, 08:53:15 CET »
devi fare onFoucusListener sull'edit text e non l'onclick
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia