2016-04-15 11 views
0

Ich versuche benutzerdefinierte Liste View Adapter zu verwenden, um UI des ListView anzupassen. Aber ich kann keine Textansicht der benutzerdefinierten Listenansicht festlegen. titleView.setText(tem); in benutzerdefinierten Adapter funktioniert nicht. Es gibt keinen Fehler. Es zeigt eine leere Zeichenfolge in der Textansicht an (die ich dynamisch aus der Adapterklasse einstelle) und zeigt Text korrekt anzeigen an, der in der Elementliste fest codiert ist (zeigt, dass der benutzerdefinierte Adapter korrekt mit dem Fragment verbunden ist). Könnte mir jemand dabei helfen?Einstellung Text von TextView, mit benutzerdefinierten ListView Adapter

Fragment Klasse Anzeige Liste

public class Help_FromFriend_OfferedFragment extends Fragment { 

    ListView msgList; 
    ArrayList<post> details; 
    AdapterView.AdapterContextMenuInfo info; 
    private String Preference; 

    public Help_FromFriend_OfferedFragment() { 
    } 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 

     View rootView = inflater.inflate(R.layout.fragment_help__from_friend__offered, container, false); 

     msgList = (ListView) rootView.findViewById(R.id.listView_post); 

     details = new ArrayList<post>(); 

     post Detail; 
     Detail = new post(); 
     Detail.setPost_heading("Heading 1"); 
     Detail.setPost_owner_name("Bob"); 
     details.add(Detail); 

     Detail = new post(); 
     Detail.setPost_heading("Heading 2"); 
     Detail.setPost_owner_name("Bob 2"); 
     details.add(Detail); 

     msgList.setAdapter(new postListViewCustomAdaptor(details, getActivity())); 

     return rootView; 
    } 
} 

Fragment Layout

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 


tools:context="com.example.Help_FromFriend_OfferedFragment" 
tools:showIn="@layout/activity_help__from_friend__offered" 
android:background="#999999" 
> 

<ListView 
    android:background="#984442" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/listView_post" 
    android:layout_gravity="left|top" /> 

</FrameLayout> 

kundenspezifische Adapter Klasse

public class postListViewCustomAdaptor extends BaseAdapter { 

    private ArrayList<post> _data; 
    Context _c; 

    postListViewCustomAdaptor (ArrayList<post> data, Context c){ 
     _data = data; 
     _c = c; 
    } 

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

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

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

    public View getView(int position, View convertView, ViewGroup parent) { 
     // TODO Auto-generated method stub 
     View v = convertView; 
     if (v == null) 
     { 
      LayoutInflater vi = (LayoutInflater)_c.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
      v = vi.inflate(R.layout.list_item_post, null); 
      Log.v("custom Adaptor","v is null "); 
     } 


     //ImageView image = (ImageView) v.findViewById(R.id.post_photo); 
     TextView titleView = (TextView)v.findViewById(R.id.post_title); 
     TextView ownerNameView = (TextView)v.findViewById(R.id.post_owner_name); 


     post post_details = _data.get(position); 
     //image.setImageResource(post_details .getPost_photo()); 
     Log.v("custom Adaptor", "setting postHeading: " + post_details.getPost_heading()); 
     String tem ="faltu"; 

     Log.v("custom Adaptor", "title from View : " + titleView.getText()); 

     titleView.setText(tem); 
     ownerNameView.setText(post_details .getPost_owner_name()); 
     return v; 
    } 
} 

list_item_post.xml (benutzerdefinierte Liste Artikel)

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

    <LinearLayout android:layout_width="match_parent" 
     android:layout_height="wrap_content" android:orientation="horizontal" > 
      
            <ImageView 
      android:id="@+id/post_photo" 
      android:layout_width="wrap_content" 
      android:layout_height="40dp" /> 
      
     <TextView 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center" 
      android:text="oo" 
      android:textAppearance="?android:attr/textAppearanceMedium" 
      android:textColor="#FFFFFF" 
      android:background="#896322" />  

            <TextView 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:id="@+id/post_title" 
     android:layout_gravity="center" 
     android:text="ahaha" 
     android:textAppearance="?android:attr/textAppearanceMedium" 
     android:textColor="#FFFFFF" 
     android:background="#003366" />  

      <TextView 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:id="@+id/post_owner_name" 
     android:layout_gravity="center" 
     android:textAppearance="?android:attr/textAppearanceMedium" 
     android:textColor="#003366" />  
      
          
        </LinearLayout> 


    </LinearLayout> 

Antwort

2

Überprüfen Sie die Layoutparameter auf dem TextView s in Ihrem LinearLayout. Sie sind alle Breite, was bedeutet, dass die erste quetscht die zweite und dritte zu nichts.

Verwenden Sie layout_width="0dp" und layout_weight="1", um alle TextView s gleiche Breite zu geben.

+0

vielen Dank .... dieser dumme Fehler verschwendet meinen halben Tag – Tarun