Как я могу отобразить строку и поле редактирования текста в одном элементе списка? - PullRequest
1 голос
/ 05 марта 2012

В моей программе я получаю несколько строк из удаленной базы данных SQL, используя json. Эти элементы (строки) в данный момент заполняют мой ListView. Я хотел бы поместить поле edittext в просмотр списка, если элемент поставляется как со строкой, так и с полем edittext. Позже я также хочу сохранить текст, введенный в поле edittext, поэтому я должен иметь возможность ссылаться на него. Кто-нибудь может мне помочь?

Ответы [ 2 ]

2 голосов
/ 05 марта 2012

Эй, это может вам помочь

Android ListView и ListActivity

2 голосов
/ 05 марта 2012

Вы должны создать представление для списка, как вам нравится, вот пример.

home.xml

<ListView
    android:id="@+id/listView"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:background="@android:drawable/alert_dark_frame" >
</ListView>

</LinearLayout>

и еще один xml, который вы должны надуть,list.xml

<?xml version="1.0" encoding="utf-8"?>

<TextView
    android:id="@+id/textView1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="Large Text"
    android:textAppearance="?android:attr/textAppearanceLarge" />

<TextView
    android:id="@+id/textView2"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"

    android:text="TextView" />

</LinearLayout>

в своей деятельности используйте этот метод,

LayoutInflater mlayoutinflator;
public void getlist(final ArrayList<contact> list){
      // Get the list view
 ListView listView = (ListView) findViewById(R.id.listView);
    mlayoutinflator =(LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    ArrayAdapter<contact> aa = new ArrayAdapter<contact>(this, R.layout.listitem,list){
        @Override
    public View getView(final int position, View convertView,ViewGroup parent) 
        {

                    if (null == convertView) 
                    {
        convertView = mlayoutinflator.inflate(R.layout.listitem, parent, false);

            holder = new ViewHolder();
                    holder.value1 = (TextView)convertView.findViewById(R.id.textView1);
                    holder.value2 = (TextView)convertView.findViewById(R.id.textView2);
                    convertView.setTag(holder);
                    }
                    else
                    {
                    holder = (ViewHolder) convertView.getTag();
                    }
                    holder.value1.setText(""+list.get(position).getName().trim());
                    holder.value2.setText(""+list.get(position).getNumber().trim());


                    convertView.setOnClickListener(new View.OnClickListener()
                    {

                        public void onClick(View v) 
                        {
                            Intent intent = new Intent(Intent.ACTION_VIEW);
                            intent.setData(Uri.parse("sms:"));
                            intent.putExtra( "sms_body", list.get(position).getName()+"-"+list.get(position).getNumber() );
                            startActivity(intent);
                        }
                    });


            return convertView;
        }
    };
    listView.setAdapter(aa);
}

 static class ViewHolder
   {
       private TextView value1;
       private TextView value2;
   }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...