| |||||||
Das Thema "KeyListener Return" befindet sich unter Android App Entwicklung auf Android-Hilfe.de.
|
| | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer Benutzer Registriert seit: 24.12.2011
Beiträge: 5
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
| ich bastel gerade an einer Activity, in die der User etwas eintragen soll. Der Text soll entweder mit a) Button "weiterer Artikel" b) Button "Fertig" oder c) SoftKey "Enter" in einer ArrayList geschrieben werden und in einer anderen Activity als ListView ausgegegeben werden. Variante a) und b) klappen perfekt, sobald ich aber "Enter" der Tastatur drücke, wird der Text in die ArrayList geschrieben und das ganze nochmal aufgerufen. Die DVM verhält sich so, als hätte ich doppelt geklickt. Ich kann mit das Verhalten nicht erklären. Code: public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.einkauf_zetttel_anlegen);
complete=(AutoCompleteTextView)findViewById(R.id.complete);
weiterer_Artikel=(Button)findViewById(R.id.weiterer_Artikel);
fertig=(Button)findViewById(R.id.einkaufszettel_fertig);
res=getResources();
String [] bez=res.getStringArray(R.array.Artikel_Komplett);
ArrayAdapter<String> ad=new ArrayAdapter<String>(this, android.R.layout.simple_dropdown_item_1line, bez );
complete.setAdapter(ad);
//complete.setInputType(0);
fertig.setClickable(true);
fertig.setPressed(false);
weiterer_Artikel.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
sammleEintrag();
}
});
complete.setOnKeyListener(new View.OnKeyListener() {
public boolean onKey(View v, int keyCode, KeyEvent event) {
if(event.getKeyCode()==66){
sammleEintrag();
}
return false;
}
});
fertig.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
text=complete.getText().toString();
Artikel.add(text);
int a=Artikel.size();
String []ar =new String[a];
Artikel.toArray(ar);
Toast.makeText(EinkaufzettelAnlegen.this, " Text: "+ar.length, Toast.LENGTH_LONG).show();
Intent in=new Intent();
in.setClass(EinkaufzettelAnlegen.this, Einkaufszettel_anzeigen.class);
in.putExtra("array",ar);
startActivity(in);
}
});
}
public void sammleEintrag(){
text=complete.getText().toString();
Artikel.add(text);
Toast.makeText(EinkaufzettelAnlegen.this, "ID: "+i+" Text: "+text, Toast.LENGTH_LONG).show();
i++;
complete.setText(" ");
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(complete.getWindowToken(), 0);
}
} |
| | |
| | #2 (permalink) |
| Android Guru Registriert seit: 09.05.2009
Beiträge: 2.389
Abgegebene Danke: 36
Erhielt 307 Danke für 289 Beiträge
|
du musst auch noch den status abfragen. event.getstatus == keyevent.keydown oder sowas in der art.
__________________ App Entwicklung Latest apps: Media Streamer BETA | DailyCash | MoneyManager ( PRO | HD ) |
| | |
| | #3 (permalink) |
| Neuer Benutzer Registriert seit: 24.12.2011
Beiträge: 5
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
|
Hallo sordi, danke, das war mein Fehler gewesen. Der "Return" Button empfing immer zwei Aktionen er wurde gedrückt er wurde losgelassen dadurch der doppelte Eintrag. gruß Viktor |
| | |
![]() |
|
| Themen-Optionen | |
| Ansicht | |
| |
| ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| LG Mobile Pick up and Return | 0211dus | LG P990 Optimus Speed Forum | 14 | 07.10.2011 13:14 |
| [Kostenlos] Return Zero (BETA) | Wingnut | Android Spiele | 2 | 28.03.2011 23:27 |
| Tastaturkombination SHIFT plus RETURN? | batab | Samsung Galaxy Tab Forum | 12 | 09.12.2010 11:01 |
| Return Button | Chris92 | Android App Entwicklung | 2 | 24.11.2010 18:17 |
| KeyListener reagiert nur auf digits | crafics | Android App Entwicklung | 1 | 20.07.2009 00:20 |