Mam problem z moim EditText
. Używam następujący adapter:Android EdytujTekst w ListView - klawiatura
public class RowTextViewAdapter extends BaseAdapter {
...
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
if (rowTitles.get(position).equals("edit")) {
if(et == null){
et = new EditText(activity);
et.setText("Test");
}
return et;
}
else {
convertView = new TextRow(activity);
holder = new ViewHolder(((TextRow) convertView).getTextView(), ((TextRow) convertView).getImageView());
convertView.setTag(holder);
holder.getTextView().setText(StringManager.getInstance().getText(rowTitles.get(position), activity));
holder.getImageView().setImageBitmap(assetController.getBitmap(additiveIcons.get(position) + ".png", null));
return convertView;
}
}
}
i ListActivity
:
public class AppSettingActivity extends ListActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
adapter = new RowTextViewAdapter(this);
adapter.addRowView("account", "arrowDw");
adapter.addRowView("password", "arrowDw");
setListAdapter(adapter);
}
...
protected void onListItemClick(ListView listView, View view, int position, long id) {
switch (position) {
case 0: accIsEditable = adapter.setEditable(position); break;
case 1:
if(accIsEditable) {
//TODO do something..
break;
}
pwIsEditable = adapter.setEditable(position);
break;
...
}
}
Jeśli kliknięciu na pierwszej pozycji dodać nowy element listy na poz. 1 (pos: 0, 1, 2, ...). Teraz pole EditText
zostaje dodane do listy.
ListView:
---------------------------- -------------------------
Account v Account ^
---------------------------- ==> -------------------------
Passowrd v [::::::::EditText:::::::]
---------------------------- -------------------------
//more.. Password v
---------------------------- -------------------------
//more..
-------------------------
Gdybym teraz kliknąć w polu EditText
, to pokazuje wirtualną klawiaturę i traci ostrość EditText
. Klikam ponownie i zyskuje ostrość. Ale jeśli coś napiszę, tekst jest wyświetlany tylko w polu EditText
, jeśli dotknę go i nie często, gdy piszę ...
Jakiś pomysł na naprawienie tego problemu z aktualizacją?
To brzmi podobnie do tego problemu: http://stackoverflow.com/questions/6918494/edit-text-in-listactivity- listview-looses-focus-when-keyboard-comes-up Mam nadzieję, że pomoże :-) – atraudes
Cóż, mam też problemy z ustawieniem ostrości. Próbowałem go z: 'addTextChangedListener' -> Debugowanie jest poprawne - pokazuje właściwy tekst. – Javatar
Ale nie mogę dowiedzieć się, jak ustawić tekst ('EditText.setText (" nowy tekst słuchaczy ")') bez wyjątku. Nie znalazłem metody ponownego ustawienia FOCUS w EditText. Jedyne, co mogę zrobić, to wywołać 'getInstance(). NotifyDataSetChanged()' ale po tym zawsze muszę ręcznie kliknąć ponownie w polu EditText i zapisuje tylko jedną literę .. Z 'EditText.requestFocus () 'klawiatura nie jest wyświetlana, a EditText nie jest już w stanie ustawić ostrości – Javatar