2

我有一個bade適配器的列表視圖它實際上是一個靜態的每行包含2個文本視圖和一個圖像問題是我試圖把它放在一個片段的活動它的工作原理非常好但沒有把它放在一個片段類它給了我錯誤的行包含的意圖,另外一個活動,但意圖給出了一個錯誤,並且還設置adpater到列表視圖給出了另一個錯誤 這裏是代碼:listview與片段內的基礎適配器

public class consulterfragment extends Fragment implements AdapterView.OnItemClickListener { 
ListView list; 
@Nullable  
@Override  
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
    View view= inflater.inflate(R.layout.consulter_fragment_layout,container,false) ; 
    list= (ListView) view.findViewById(R.id.listView); 
    list.setAdapter(new SanaAdapter(this)); 
    list.setOnItemClickListener(this); 
    return view; 

} 
public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
    Intent intent = new Intent(this, note_details.class); 
    startActivity(intent); 
    MyViewHolder holder = (MyViewHolder) view.getTag(); 
    SingleRow temp = (SingleRow) holder.myImage.getTag(); 
    intent.putExtra("titles", temp.titles); 
    startActivity(intent); 
} 

class SingleRow { 
    String titles; 
    String description; 
    int image; 

    SingleRow(String titles, String description, int image) { 
     this.titles = titles; 
     this.description = description; 
     this.image = image; 
    } 
} 
class MyViewHolder { 
    ImageView myImage; 
    TextView myTitle; 
    TextView myDescription; 

    MyViewHolder(View v) { 
     myImage = (ImageView) v.findViewById(R.id.imageView2); 
     myTitle = (TextView) v.findViewById(R.id.textView4); 
     myDescription = (TextView) v.findViewById(R.id.textView5); 
    } 
} 

class SanaAdapter extends BaseAdapter { 
    ArrayList<SingleRow> list; 
    Context context; 

    SanaAdapter(Context c) { 
     context = c; 
     list = new ArrayList<SingleRow>(); 
     Resources res = c.getResources(); 
     String[] titles = res.getStringArray(R.array.titles); 
     String[] descriptions = res.getStringArray(R.array.decriptions); 
     int[] images = {R.drawable.ico1, R.drawable.ico2, R.drawable.ico3, R.drawable.ico4, R.drawable.ico5, R.drawable.ico6, R.drawable.ico7, R.drawable.ico8, 
       R.drawable.ico9, R.drawable.ico10, R.drawable.ico1, R.drawable.ico2, R.drawable.ico3, R.drawable.ico4, R.drawable.ico5, R.drawable.ico6, R.drawable.ico7, R.drawable.ico8, 
       R.drawable.ico9, R.drawable.ico10}; 
     for (int i = 0; i < 10; i++) { 
      list.add(new SingleRow(titles[i], descriptions[i], images[i])); 
     } 
    } 

    public int getCount() { 
     return list.size(); 
    } 

    @Override 
    public Object getItem(int i) { 
     return list.get(i); 
    } 

    @Override 
    public long getItemId(int i) { 
     return i; 
    } 

    @Override 
    public View getView(int i, View convertview, ViewGroup viewGroup) { 
     View row = convertview; 
     MyViewHolder holder = null; 
     if (row == null) { 
      LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
      row = inflater.inflate(R.layout.notelist_row, viewGroup, false); 
      holder = new MyViewHolder(row); 
      row.setTag(holder); 
      Log.d("SANA", "Creating a new row"); 
     } else { 
      holder = (MyViewHolder) row.getTag(); 
      Log.d("SANA", "Recycling shit hhhhhh"); 
     } 

     SingleRow temp = list.get(i); 

     holder.myTitle.setText(temp.titles); 
     holder.myDescription.setText(temp.description); 
     holder.myImage.setImageResource(temp.image); 
     return row; 
     } 
    } 
} 

第一個錯誤是在設置適配器 它說SanaAdapter(android.context.Context)SanaAdapter不能應用

的第二個錯誤是在意向它說 無法解決構造​​

我真的apreciate您的幫助

+0

使用'getActivity()'而不是'this' –

回答

3

在onCreateView您呼叫

list.setAdapter(new SanaAdapter(this)); 

但正確的將是

list.setAdapter(new SanaAdapter(getActivity()); 

另外它應該被高亮顯示,是嗎?片段擴展Object,它不是Context的子體。