2013-05-29 6 views
0

Привет, у меня есть небольшая проблема при использовании ArrayAdapter, происходит то, что не все данные из каждого строя отображаются в каждой строке, но для других строк это прекрасно и отображает все данные, я надеюсь, что это имеет смысл. пример списка результатов, как показано в приложении.Android ArrayAdapter не отображает все данные в каждой строке

20238 Christian Neza 
20394 Christian Kezama 
23554 Christian 

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

В приведенной ниже коде для ClientListAdapter я поставил журнал, если запись = 20238, выход из этого журнала показывает, что фактические данные, строка

20238 Christian Neza Бизиман

, а также 23554 обрезали последнюю часть текста, которые будут отображаться, очень странно, говорит 50% список отображается правильно.

public class ClientListAdapter extends ArrayAdapter<ClientListVO> { 

    private ArrayList<ClientListVO> items; 

    public ClientListAdapter(Context context, int textViewResourceId, ArrayList<ClientListVO> items) { 
      super(context, textViewResourceId, items); 
      this.items = items; 
    } 

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

      if (v == null) { 
       LayoutInflater vi = (LayoutInflater)getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
       v = vi.inflate(R.layout.renderer_clientlist, null); 
      } 
      ClientListVO o = items.get(position); 

      if (o != null) { 
        if(o._id == 20238) 
         Log.i("ClientListAdapter", o.toString()); 
        TextView tt = (TextView) v.findViewById(R.id.toptext); 
        if (tt != null) 
         tt.setText(o.toString()); 
      } 

      return v; 
    } 
} 

R.layout.renderer_clientlist

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="?android:attr/listPreferredItemHeight" 
    android:orientation="vertical" > 

    <TextView 
     android:id="@+id/toptext" 
     android:layout_width="fill_parent" 
     android:layout_height="0dip" 
     android:layout_weight="1" 
     android:gravity="center_vertical" /> 

</LinearLayout> 

Заключительная часть кода я думаю, что вам нужно, это фактическое ListView в деятельности, где в настоящее время отображаются данные.

<ListView 
    android:id="@+id/listview" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" /> 

Пожалуйста, кто может пролить свет на то, что им делать неправильно, заранее спасибо, я на самом деле сжатые сроки для этого.

ответ

2

Возможно, из-за этого заявления android:layout_width="fill_parent". Это означало бы, что текст, который имеет тот же размер ширины экрана, может отображаться, но что-то более длинное будет взломано.

Попробуйте использовать android:layout_width="wrap_content"

+0

благодаря этому он теперь отлично отображен. Мне всегда нравятся простые решения – cghrmauritius

0
keep this out of the condition  
     LayoutInflater vi =(LayoutInflater)getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); 

и проверить вас деталь если все данные поступают или не

+0

Извините anddevmanu, но то, что вы предлагаете, не имеет смысла для меня, если я не включаю его, тогда vi будет null и ничего не будет возвращено, также я проверил данные с выходом журнала, как я упомянул в своем сообщении. пожалуйста, объясните, что вы имели в виду, «держите это вне состояния». – cghrmauritius

+0

не удаляйте это, просто напишите эти данные из своего состояния. – anddevmanu

1

Что я предполагаю, что ваш текст слишком долго вид будет отображаться. Представление может управлять целочисленным значением еще двумя словами (например: «20394 Кристиан Кезама»). Но после этого оставшийся текст устарел. Вы можете уменьшить размер текста в текстовом виде, чтобы он соответствовал всем текстам. Это одно из многих возможных решений.

0

вы можете проверить, является ли это отображением полного имени, если вы удалите андроид: layout_weight = «1» от TextView.

Смежные вопросы