2016-03-24 20 views
-2

Listeyi doldurmaya çalışmak için listAdapter kullanıyorum. ama bir sorun yaşıyorum ve başvurumun çökmesine neden oluyor. i başlangıçta xml nesnelerin içine listesini doldurmak istedim ama benim application..THIS için daha iyi MY ADAPTORparça bağdaştırıcılarını kullanarak liste bağdaştırıcısı

package com.example.victor.kidsrewards; 

    import android.content.Context; 
    import android.view.View; 
    import android.view.ViewGroup; 
    import android.widget.ArrayAdapter; 
    import android.view.LayoutInflater; 
    import android.widget.TextView; 

    import java.util.List; 

    /** 
    * Created by Victor on 3/20/2016. 
    */ 
    public class ListAdapter extends ArrayAdapter<Task> { 

     private final Context context; 

     private final List<Task> taskList; 

     public ListAdapter(Context context, List<Task> taskList){ 
      super(context, R.layout.fragment_tasks, taskList); 
      this.context = context; 
      this.taskList= taskList; 
     } 

     @Override 
     public View getView(int position, View convertView, ViewGroup parent){ 
      LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 

      View rowView = inflater.inflate(R.layout.fragment_tasks,parent,false); 

      /*TextView taskText = (TextView)rowView.findViewById(R.id.newTaskText); 
      taskText.setText(taskList.get(position).getText()); 

      TextView pointsText = (TextView)rowView.findViewById(R.id.newPointsText); 
      pointsText.setText(taskList.get(position).getText());*/ 

      return rowView; 
     } 
    } 
** 

** IS bu benim xml kod olan bir liste görünümü olacağına inanıyorum

<!-- TODO: Update blank fragment layout --> 
    <ListView 
     android:id="@android:id/list" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:textColor="#000" 
     android:text="TODO TEXT GOES_HERE"> 
    </ListView> 

</FrameLayout> 
** 

**

Bu benim listadapter

package com.example.victor.kidsrewards; 


import android.app.Activity; 
import android.content.Context; 
import android.os.Bundle; 
import android.support.v4.app.Fragment; 
import android.support.v4.app.ListFragment; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 


/** 
* A simple {@link Fragment} subclass. 
*/ 
public class TaskList extends ListFragment { 

    private TaskDataBase tdb; 
    public TaskList() { 
     // Required empty public constructor 
    } 


    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 
     // Inflate the layout for this fragment 
     return inflater.inflate(R.layout.fragment_task_list, container, false); 

    } 
    @Override 
    public void onActivityCreated(Bundle savedInstanceState) { 
     super.onActivityCreated(savedInstanceState); 
     tdb = new TaskDataBase(getContext()); 

     setListAdapter(new ListAdapter(getContext(), tdb.getTasks())); 


    } 
    @Override 
    public void onAttach(Context context) { 
     super.onAttach(context); 


    } 
} 
+0

Lütfen istisnayı sağlayın –

+0

Lütfen yığın izlemeyi gönderin. –

+0

Metin görünümü düzeninizi tanımladığınız yer de lütfen bu yerleşimi de belirtin. Şu anda –

cevap

0

sen dahil ettik o düzen dosyasının adı nedir diyoruz benim parçasıdır? Eğer fragment_tasks.xml ise, fragment_tasks.xml bir ListView içermemelidir. En azından newTaskText ile textView'a sahip olmalıdır. ListeView içeren içerik düzenini tanımlayın. Sonra her satır için bir düzen var. Bu sadece ListView değil, TextView (ve tek bir satır ile ilgili diğer görünümler) içermelidir.

+0

üzgünüm bu benim ilk kez stackoverflow kullanarak, ben sadece benim soru güncellendi var .. Ben TextViews kullanmak istemiyorum, sadece LIstView kullanmak istiyorum . Listemde benim getView yöntemimde bir yere referans gönderip göndermediğinden emin değilim ve textView'ı kaldırın. Ayrıca nasıl referans göstereceğimden de emin değilim. Teşekkürler – vhdz04

+0

Listemi doldurmak için bu rowView'i nasıl kullanabilirim? – vhdz04

+0

Tipik bir listView tabanlı UI iki tür düzen gerektirir. Biri, doldurmak istediğiniz ListView'i içeren en üst düzey düzendir. Diğeri ise her satırın düzeni. Tüm satırlar birbirine benzerse, tek satırlı bir düzen varsa, çok satırlı düzenler olabilir. Faaliyetinizde setContentView yapmak için ilkini kullanın. İkincisi, bir satır düzenini şişirdiğinizde getView'da kullandığınız. – greenrobo

İlgili konular