2014-12-02 93 views
1

我想創建一個自定義列表適配器,該列表適配器正在使用volley填充json數組,但是我想在每個列表項中放置可點擊的項目列表。下面是一個例子JSON,我要用來填充列表Android列表適配器,每個列表項中有一個數組列表

[ 
{ 
    "name": "Hopewell Mutanda", 
    "answer": "This is my answer", 
    "votes": 10, 
    "date": 20-06-2014, 
    "comments": [ 
       { 
        "comment": "This is a great answer", 
        "name": "Gloria Nyakudya", 
        "date": 21-10-2014, 
        "vote": 20, 
       }, 
       ] 
}, 

]

下面是我期待在年底,但我沒有手動佈局。我想用一個適配器來做。請注意,評論列表也有自己的xml資源和兩種不同的文字視圖。評論應該是可點擊的。

http://encodable.com/uploaddemo/files/Screenshot_2014-12-02-23-55-33.png

我的問題是我如何去改變我的自定義適配器,以適應這些requrements。我打算使用一個類似於這個的適配器來進行一些名稱更改。

private class EfficientAdapter extends BaseAdapter { 

    private LayoutInflater mInflater; 

    public EfficientAdapter(Context context) { 
     mInflater = LayoutInflater.from(context); 
    } 

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

    public Object getItem(int position) { 
     return position; 
    } 

    public long getItemId(int position) { 
     return position; 
    } 

    public View getView(final int position, View convertView, ViewGroup parent) { 
     ViewHolder holder; 

     if (convertView == null) { 
      convertView = mInflater.inflate(R.layout.feed_list_item, null); 
      holder = new ViewHolder(); 

     mFeedImage = (ImageView) convertView.findViewById(R.id.feed_image); 
      mFeedImageAuthor = (ImageView) convertView.findViewById(R.id.feed_image_image_author); 
      mFeedTitle = (TextView) convertView.findViewById(R.id.feed_title); 
      mFeedDate = (TextView) convertView.findViewById(R.id.feed_date); 
      mFeedAuthor = (TextView) convertView.findViewById(R.id.feed_author); 
      mFeedTag = (TextView) convertView.findViewById(R.id.feed_tag); 

      convertView.setTag(holder); 
     } else { 
      holder = (ViewHolder) convertView.getTag(); 
     } 

     Typeface custom_font = Typeface.createFromAsset(getActivity().getAssets(), "fonts/RobotoSlab-Light.ttf"); 
     mFeedTitle.setTypeface(custom_font); 
     holder.mFeedTitle.setText(mDataList.get(position).getsFeedTitle()); 
     holder.mFeedDate.setText(mDataList.get(position).getsFeedDate()) ; 
     holder.mFeedAuthor.setText(mDataList.get(position).getsFeedAuthor()) ; 
     holder.mFeedTag.setText(mDataList.get(position).getsFeedTag()) ; 


     mListView.setOnItemClickListener(new android.widget.AdapterView.OnItemClickListener() { 

      @Override 
      public void onItemClick(AdapterView<?> arg0, View arg1, 
        int arg2, long arg3) { 
       // TODO Auto-generated method stub 

        } 
         }); 

     return convertView; 

      } 
    class ViewHolder { 
     TextView mFeedTitle, mFeedDate, mFeedAuthor, mFeedTag; 
     ImageView mFeedImage, mFeedImageAuthor; 

    }  

} 
+0

'但我想列出每個列表項目中可點擊的項目 - 你能解釋你如何可視化你的列表 – kiruwka 2014-12-02 19:41:45

+0

我也很困惑。 mListView是此適配器提供視圖的列表嗎?或者你想把一個ListView放入你的列表項目(並進入你的持有者)。列表中的列表似乎是一個糟糕的主意。你確定你需要嗎?你能否給出一個項目有多少評論的計數,然後在他們點擊一個項目時有一個單獨的細節視圖? – Bruce 2014-12-02 20:00:04

+0

夥計們請檢查我的編輯並點擊鏈接。我猜它可能有助於解釋我想實現的目標 – 2014-12-02 22:09:15

回答

-1

我不認爲一個listview項目可能有多個可點擊區域。像這樣的列表可以類似於分段列表的工作方式完成。

你可以嘗試像this

enter image description here

這方面的一個更復雜的版本應該完成你正在嘗試做的,除非我誤解你的意圖是什麼,但這個你應該能夠定義2或3或更多不同的行佈局,然後根據需要訂購它們。

+0

可能無法嵌套列表視圖,但可以使用addview填充線性佈局。如果你看看android stackachange應用程序 – 2014-12-03 01:07:41

相關問題