0

いろいろなリンクをたどっていますが、リストビューからコンテンツが失われるという問題を解決できません。

MessageAdapter.java

class MessageAdapter extends BaseAdapter {

     ViewHolder viewHolder;
     LayoutInflater inflater=(LayoutInflater)getSystemService(LAYOUT_INFLATER_SERVICE);

     public int getCount() {
            // TODO Auto-generated method stub
            return Constant_Variables.Sms_Status_list.size();
        }

     public Object getItem(int position) {
            // TODO Auto-generated method stub
            return position;
        }

     @Override
     public long getItemId(int position) {
            // TODO Auto-generated method stub
            return position;
        }



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

         if (convertView == null) {
             convertView = inflater.inflate(R.layout.messagelist_row, null);

             viewHolder=new ViewHolder();

             viewHolder.sms_from_row=(TextView)convertView.findViewById(R.id.sms_from_txtview);
             viewHolder.sms_to_row=(TextView)convertView.findViewById(R.id.sms_sendto_txtview);
             convertView.setTag(viewHolder);

         }
         else
         {
             viewHolder = (ViewHolder) convertView.getTag();
         }

         if(Constant_Variables.Sms_Status_list.get(position).equalsIgnoreCase(Twilioresponse_Utils.sms_sent))
         {
             viewHolder.sms_from_row.setVisibility(View.GONE);
             viewHolder.sms_to_row.setText("Sent: "+Constant_Variables.Sms_from_list.get(position));

         }
         else if(Constant_Variables.Sms_Status_list.get(position).equalsIgnoreCase(Twilioresponse_Utils.sms_received))
         {
             viewHolder.sms_to_row.setVisibility(View.GONE);
             viewHolder.sms_from_row.setText("Received: "+Constant_Variables.Sms_to_list.get(position));
         }
         else
         {
             viewHolder.sms_from_row.setText("Message in queued.");
         }


         convertView.setTag(viewHolder);


         return convertView;
     }
 }


    class ViewHolder {
         TextView sms_from_row,sms_to_row;

     }

可視性を「なくなった」に設定しない場合、リストデータは失われませんが、可視性を「なくなった」に設定すると、リストデータは失われます。

これは、テキストを表示するために使用しているXMLファイルです。

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/sms_from_txtview"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:padding="12dp"
        android:text="From" />

    <TextView
        android:id="@+id/sms_sendto_txtview"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:padding="12dp"
        android:text="To" />
</LinearLayout>
4

2 に答える 2

0

あなたがやる

viewHolder.sms_from_row.setVisibility(View.GONE);
viewHolder.sms_to_row.setVisibility(View.GONE);

しかし、あなたは決してしません

viewHolder.sms_from_row.setVisibility(View.Visible);
viewHolder.sms_to_row.setVisibility(View.Visible);

コードを変更します。

else
     {
         viewHolder = (ViewHolder) convertView.getTag();
     }

// ADD THIS TWO LINES
viewHolder.sms_from_row.setVisibility(View.Visible);
viewHolder.sms_to_row.setVisibility(View.Visible);

     if(Constant_Variables.Sms_Status_list.get(position).equalsIgnoreCase(Twilioresponse_Utils.sms_sent))
     {
于 2013-01-23T12:25:16.850 に答える
0

他の部分でもView.VISIBLEを設定する必要があります

else
{
    viewHolder.sms_from_row.setText("Message in queued.");
    viewHolder.sms_to_row.setVisibility(View.VISIBLE);
}
于 2013-01-23T12:23:05.867 に答える