Edittext dans Listview android
J'ai Listview avec editext et textview.
Quand je touche sur edittext puis edittext perdu le focus!
J'ai résolu ce problème en mettant en android:windowSoftInputMode="adjustPan"(AndroidManifest.xml)
.
Maintenant je touche edittext que editext obtenir accent, mais l'application de l'étiquette et de la crue de listview disparaître(partie supérieure).
Je veux obtenir le focus lorsque l'utilisateur touche sur edittext sans perte d'application de l'étiquette et de la crue de listview.
Code que j'ai mis en œuvre :
Ci-dessous codage obtenir le focus lorsque l'utilisateur touche sur edittext mais l'application de l'étiquette et de la crue de listview disparaissent lorsque souple clavier pop-up.Je veux obtenir le focus lorsque l'utilisateur touche sur edittext sans perte d'application de l'étiquette et de la crue de listview.
1)AndroidManifest.xml
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".MyListViewDemoActivity"
android:label="@string/app_name"
android:windowSoftInputMode="adjustPan"
>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
2) raw_layout.xml
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<EditText android:id="@+id/mEditText"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
</LinearLayout>
3) main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<ListView android:id="@+id/mListView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
</LinearLayout>
4) MyListViewDemoActivity
public class MyListViewDemoActivity extends Activity {
private ListView mListView;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mListView=(ListView)findViewById(R.id.mListView);
mListView.setAdapter(new MyAdapter(this));
}
}
class MyAdapter extends BaseAdapter {
private Activity mContext;
private String character[]={"a","b","c","d","e","f","g","h","i","j"};
public MyAdapter(Activity context)
{
mContext=context;
}
@Override
public int getCount() {
//TODO Auto-generated method stub
return character.length;
}
@Override
public Object getItem(int position) {
//TODO Auto-generated method stub
return null;
}
@Override
public long getItemId(int position) {
//TODO Auto-generated method stub
return 0;
}
private class Holder
{
EditText mEditText;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
//TODO Auto-generated method stub
final Holder holder;
if (convertView == null) {
holder = new Holder();
LayoutInflater inflater =mContext.getLayoutInflater();
convertView = inflater.inflate(R.layout.raw_layout, null);
holder.mEditText = (EditText) convertView
.findViewById(R.id.mEditText);
convertView.setTag(holder);
} else {
holder = (Holder) convertView.getTag();
}
holder.mEditText.setText(character[position]);
holder.mEditText.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
//TODO Auto-generated method stub
if (!hasFocus){
final EditText etxt = (EditText) v;
holder.mEditText.setText(etxt.getText().toString());
}
}
});
return convertView;
}
}
- veuillez fournir votre code et de donner plus de détails..
- veuillez fournir plus de détails pour obtenir l'aide appropriée
- Double Possible de Focusable EditText à l'intérieur de ListView
Vous devez vous connecter pour publier un commentaire.
J'ai eu le même problème. Mon numberic clavier serait momentanément apparaissent, avant d'être remplacé par le clavier qwerty et le EditText perdre le focus.
Le problème est que le clavier apparaissant rend votre EditText perdre le focus. Pour éviter cela, placez la ligne suivante dans votre AndroidManifest.xml appropriée pour l'Activité (ou les Activités):
Voir Android la documentation:
Sans voir ton code, comment pouvons-nous suggérer la solution pour votre problème. Afin de conserver la pratique de l'affichage de code possible chaque fois que vous posez n'importe quelle question.
Cependant, ici, j'ai trouvé un tutoriel pour la mise en œuvre de Android Focusable EditText à l'intérieur de ListView. Aller à travers l'exemple et essayer de mettre en œuvre dans votre chemin ou de trouver la solution à votre problème.
J'ai résolu ce problème "Mettre EditText dans ListView comme un élément" problème récemment. Je ne suis pas très bon en anglais. Donc si il y a quelque chose que je n'explique pas clairement s'il vous plaît dites-moi.
Nous savons ListView vous pouvez faire défiler verticaly et nous voulons mettre un EditText dans ListView comme un élément.
Première:
Ajouter
dans votre AndroidManifest.xml au niveau de l'activité nœud.
Deuxième:
Nous avons créer un pojo en tant que source de données de modèle de contrôle EditText état
Line.java
Troisième:
Nous écrire un adaptateur pour adapter EditText à la liste.
Élément item_line.xml:
Adaptateur:
Tout fait!
Vous pouvez lire plus de détails dans mon github.
Démo: https://github.com/Aspsine/EditTextInListView
ListView
recréer la Vue,Essayez d'utiliser un
LinearLayout
à l'intérieur dans le ScrollView, puis dans votre code, utilisez unrunOnUiThread
pour remplir votre point de vue dans un autre thread comme celui-ci