0
votes

Afficher le texte de editext sur listview

J'ai un bouton, un editext et une liste de liste sur mon projet. La fonction que je veux réaliser est que, comme je saisi quelques mots dans editext et cliquez sur le bouton, les mots que j'ai dactylographiés doivent être dans la liste de réception.

Voici mon code. Après le débogage, il affiche erreur: types incompatibles: la chaîne ne peut pas être convertie en chaîne [] xxx


0 commentaires

4 Réponses :


1
votes

Essayez-le de cette façon

 public class MainActivity extends AppCompatActivity {
    private List<String> str = new ArrayList<String>();
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        ListView listView = (ListView) findViewById(R.id.list_view);  //build listview
        ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, str);
        listView.setAdapter(adapter);
    }


    public void sendMessage(View view){
        EditText editText = (EditText) findViewById(R.id.editText);
        String str1 = editText.getText().toString();
          str.add(str1);
    }
}


3 commentaires

Ce code ne fonctionnera pas car il n'y a pas d'appel de SendMessage


Ce code ne fonctionnera pas, sans notifier le jeu de données Modifier à l'adaptateur, la liste ne doit pas mettre à jour. Vous devez appeler Adapter.NotifyDataSetSetched ().


@Ashish: sendmessage () appelle de XML. Ceci est une chose très basique.Vous pouvez appeler la méthode à partir de la mise en page XML lorsque vous avez cliqué sur le bouton.



1
votes

Erreur Erreur: types incompatibles: la chaîne ne peut pas être convertie en chaîne [] est à cause de str = editext.gettext (). Tostring ();
Ici vous essayez d'assigner une chaîne au tableau de chaîne incorrectement

Ce que vous avez à faire est d'utiliser ArrayList insté de String [] car il est dynamique et efficace que string []

et

instauré de str = editext.gettext (). Tostring (); faire arraylist.add (dittext.getext (). Tostring ());


0 commentaires

2
votes

ci-dessous est le code de travail pour ce que vous voulez.

Étape 1 -> Ajouter des données dans Edition Texte P>

Étape 2 -> Cliquez sur le bouton Soumettre P>

Étape 3 -> Les données ajoutées afficheront dans ListView P>

public class MainActivity extends AppCompatActivity {

    private List<String> str = new ArrayList<>();
    private ArrayAdapter adapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        ListView listView = findViewById(R.id.list_view);  //build listview
        adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, str);
        listView.setAdapter(adapter);
    }

    public void sendMessage(View view) {
        EditText editText = findViewById(R.id.editText);
        str.add(editText.getText().toString());
        adapter.notifyDataSetChanged();
        editText.setText("");
    }
}


0 commentaires

1
votes

Dans votre cas, vous utilisez string [] code> tableau avec taille 10. Maintenant, si vous souhaitez ajouter une chaîne de editext code> dans listview code> alors vous devez ajouter comme ci-dessous. p>

public class MainActivity extends AppCompatActivity {
    private String[] str = new String[10];
    int count = 0;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        ListView listView = (ListView) findViewById(R.id.list_view);  //build listview
        ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, str);
        listView.setAdapter(adapter);
    }


    public void sendMessage(View view){
        EditText editText = (EditText) findViewById(R.id.editText);
        if(count < str.length){
             str[count] = editText.getText().toString();
             count++;
        }
    }
}


0 commentaires