Показать текст EditText из ListView - PullRequest
0 голосов
/ 24 февраля 2012

У меня есть EditText и Button в каждой строке списка.В моем ListView есть три элемента, и моя задача - показать Toast, когда кто-то нажимает кнопку, содержащую текст в соответствующем EditText.Проблема в том, что он показывает null на Toast.Вот мой код:

package org.ritesh;



    public class Edit_Text_listviewActivity extends Activity {
        /** Called when the activity is first created. */
        ListView list;
        List<String> hello;
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            list=new ListView(this);

            setContentView(list);
            hello=new ArrayList<String>();
            hello.add("Hello");
            hello.add("Hello World");
            hello.add("Hello world");

            adapter adap=new adapter(this,android.R.layout.simple_list_item_1,hello);
           list.setAdapter(adap); 
        }
        public class adapter extends ArrayAdapter
        {List<String> hello;
    Button btn;
    EditText text;
            public adapter(Context context, int textViewResourceId, List<String> objects) {
                super(context, textViewResourceId, objects);
                // TODO Auto-generated constructor stub
            hello=objects;
            }
            public int getCount(){
                return hello.size();
            }


                @Override
                public View getView(int position, View convertView, ViewGroup parent){

                    LayoutInflater inflater = (LayoutInflater) Edit_Text_listviewActivity.this
                            .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                    View rowview=(View)inflater.inflate(R.layout.main, parent,false);
                    text=(EditText)rowview.findViewById(R.id.edit);
                    text.requestFocusFromTouch();
                    btn=(Button)rowview.findViewById(R.id.btn);
                    btn.setOnClickListener(new OnClickListener(){

                        @Override
                        public void onClick(View arg0) {
                            // TODO Auto-generated method stub
                            String str=text.getText().toString();
                            Toast.makeText(Edit_Text_listviewActivity.this, str, Toast.LENGTH_LONG).show();
                        }

                    });
                return rowview;
            }
        }
    }

Ответы [ 3 ]

1 голос
/ 24 февраля 2012

Я думаю, вам не хватает одной строки в вашем getview() методе.

text.setText(hello.get(position));

Так может быть,

text=(EditText)rowview.findViewById(R.id.edit);
text.requestFocusFromTouch();
text.setText(hello.get(position));
0 голосов
/ 24 февраля 2012

в клик вы должны указать String item = (String) getListAdapter (). GetItem (position);

0 голосов
/ 24 февраля 2012

проверить это

 public class Edit_Text_listviewActivity extends Activity {
            /** Called when the activity is first created. */
            ListView list;
            List<String> hello;
            @Override
            public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                list=new ListView(this);

                setContentView(list);
                hello=new ArrayList<String>();
                hello.add("Hello");
                hello.add("Hello World");
                hello.add("Hello world");

                adapter adap=new adapter(this,android.R.layout.simple_list_item_1,hello);
        adap.myActivity = this;
               list.setAdapter(adap); 
            }
        showMessage(String mytext){

                                Toast.makeText(Edit_Text_listviewActivity.this, mytext, Toast.LENGTH_LONG).show();
        }

            public class adapter extends ArrayAdapter
            {List<String> hello;
        Button btn;
        EditText text;
                public adapter(Context context, int textViewResourceId, List<String> objects) {
                    super(context, textViewResourceId, objects);
                    // TODO Auto-generated constructor stub
                hello=objects;
                }
                public int getCount(){
                    return hello.size();
                }


                    @Override
                    public View getView(int position, View convertView, ViewGroup parent){

                        LayoutInflater inflater = (LayoutInflater) Edit_Text_listviewActivity.this
                                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                        View rowview=(View)inflater.inflate(R.layout.main, parent,false);
                        text=(EditText)rowview.findViewById(R.id.edit);
                        text.requestFocusFromTouch();
                        btn=(Button)rowview.findViewById(R.id.btn);
                        btn.setOnClickListener(new OnClickListener(){

                            @Override
                            public void onClick(View arg0) {
                                // TODO Auto-generated method stub
                               myActivity.showMessage(text.getText().toString(););
                            }

                        });
                    return rowview;
                }
            }
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...