2016-03-24 10 views
-2

listAdapterを使用してlistViewにデータを挿入しようとしています。私は問題が発生しており、アプリケーションがクラッシュする原因になっています。これは私のXMLコード フラグメントを使用したリストアダプター

ある ** MYアダプタです

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; 
     } 
    } 
** 

私は当初、XMLオブジェクトにリストを移入したかったが、私はListViewのが私のapplication..THISのために良いだろうと信じて

<!-- 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> 
** 

**

これは、私はあなたが含まれているレイアウトファイルの名前は何ですか?

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

例外をご用意ください –

+0

スタックトレースを投稿してください。 –

+0

Textviewレイアウトを定義した場所でレイアウトを指定してください。 –

答えて

0

私listadapterを呼ぶ私の断片でありますか fragment_tasks.xmlの場合、fragment_tasks.xmlにはListViewがありません。少なくともnewTaskTextのidを持つtextViewを持つ必要があります。 listViewを含むコンテンツレイアウトを定義します。次に、各行のレイアウトがあります。これには、TextView(および単一の行に関連する他のビュー)のみが含まれていて、ListViewは含まれていない必要があります。

+0

私は初めてstackoverflowを使用して私のご迷惑です、私はちょうど私の質問を更新しました..私はTextViewsを使用したくない、私はLIstView 。私のリスト内のgetViewメソッドのどこかで参照していたかどうかは分かりませんが、dapterとtextViewを削除します。私はそれをどのように参照するかもわかりません。 – vhdz04

+0

どうすれば私のリストを入力するためにそのrowViewを使用できますか? – vhdz04

+0

典型的なlistViewベースのUIでは、2種類のレイアウトが必要です。 1つは、配置するListViewを含む最上位のレイアウトです。もう1つは、各行のレイアウトです。すべての行が同様に見える場合は、単一の行レイアウトでなければ、複数の行レイアウトが存在する可能性があります。最初のアクティビティを使用して、アクティビティでsetContentViewを実行します。 2番目は、行レイアウトを拡張するときにgetViewで使用するものです。 – greenrobo

関連する問題