2012-09-29 49 views
0

我想從我的自定義ArrayList發送到適配器只有一個項目。活動開始時,我只發送一個項目。然後我想爲我的Activity實現gestureListener,並且如果我檢測到向上或向下滑動動作,我會向適配器發送另一個項目。我怎樣才能實現這個?只設置一個項目到列表視圖的適配器

我有我的自定義ArrayAdapter,我通過我的列表。但我只想發送一個項目:

public class InteractionsAdapter extends ArrayAdapter<Message>{ 

    Context context; 
int layoutResourceId;  
List<Message> messages = null; 
private Activity activity; 
public InteractionsAdapter(Context context, int layoutResourceId,List<Message> messages) { 
    super(context, layoutResourceId, messages); 
    this.layoutResourceId = layoutResourceId; 
    this.context = context; 
    this.messages = messages; 
} 

public View getView(int position, View convertView, ViewGroup parent) { 
    View row = convertView; 
    InteractionHolder holder = null; 

    if(row == null) 
    { 

     (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     LayoutInflater inflater = (LayoutInflater)this.context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     row = inflater.inflate(R.layout.interactions_item, parent, false); 

     holder = new InteractionHolder(); 
     holder.interactionId= (TextView)row.findViewById(R.id.interactionId); 
     holder.interactionAbove = (TextView)row.findViewById(R.id.interactionAbove); 
     holder.interactionBelow = (TextView)row.findViewById(R.id.interactionBelow); 
     holder.interactionMessage = (TextView)row.findViewById(R.id.interactionMessage); 
     holder.interactionDate = (TextView)row.findViewById(R.id.interactionDate); 

     row.setTag(holder); 
    } 
    else 
    { 
     holder = (InteractionHolder)row.getTag(); 
    } 

    Message message = messages.get(position); 
    Log.i("in doinbackground",Integer.toString(messages.size())); 

     Log.i("position",Integer.toString(position)); 

     holder.interactionId.setText(Integer.toString(message.getMessageId())); 
     holder.interactionAbove.setText(Integer.toString(position)); 
     holder.interactionBelow.setText(Integer.toString(messages.size()-position-1)); 
     holder.interactionMessage.setText(message.getMessageBody()); 
     holder.interactionDate.setText(message.getMessageDate().toString()); 

    return row; 
} 

static class InteractionHolder 
{ 
    TextView interactionId; 
    TextView interactionDate; 
    TextView interactionAbove; 
    TextView interactionBelow; 
    TextView interactionMessage; 

} 

} 

我試圖用ArrayAdapter,只傳遞一個項目,但它不起作用。

+1

你到目前爲止嘗試過什麼?給我們一些代碼來看看,我們會幫你改進它。 –

+0

編輯我的問題 –

+0

所以你發送一個包含一個項目的數組到你的InteractionsAdapter?你能告訴我們你用來設置你的適配器的代碼嗎? –

回答

0

我解決我的問題,簡單地增加一個

@Override 
public int getCount() { 
    return 1; 
} 

和它工作正常。

相關問題