2012-07-08 81 views
0

我的問題圍繞提醒Spinner的。我試圖讓用戶最多添加5條提醒。但我也不想顯示全部五個。這些提示每個Spinner有多種選擇。當用戶點擊添加提醒時,它會這樣做。當他們想要拿走一個,他們也可以做到這一點,當他們想要添加另一個,新的出現在底部。任何想法如何去做這件事?如何添加動態微調以及刪除它們?

我原來的實現是有5個已經定義的(4「消失」),但是如果用戶想要添加一個,它就變成了「可見」。問題在於,如果您從視圖中提醒並將其添加回去,它不會在底部顯示,而是返回原來的位置(除非它已經是最後一個微調框) 。現在我迷失瞭如何在特定視圖下動態添加spinners。任何想法將不勝感激!

編輯:我有什麼到目前爲止/ RemindersAdapter.java


public class RemindersAdapter extends BaseAdapter{ 
ArrayList<Spinner> shownReminders; 

public RemindersAdapter(Context c) { 
    shownReminders.add(new Spinner(c)); 
    shownReminders.add(new Spinner(c)); 
    shownReminders.add(new Spinner(c)); 
    shownReminders.add(new Spinner(c)); 
} 

@Override 
public int getCount() { 
    // TODO Auto-generated method stub 
    return shownReminders.size(); 
} 

@Override 
public Object getItem(int position) { 
    // TODO Auto-generated method stub 
    return shownReminders.get(position); 
} 

@Override 
public long getItemId(int position) { 
    // TODO Auto-generated method stub 
    return position; 
} 

@Override 
public View getView(int position, View view, ViewGroup parent) { 
    if(view == null) { 
     LayoutInflater inflater = LayoutInflater.from(parent.getContext()); 
     view = inflater.inflate(R.layout.reminder_spinner, parent, false); 
    } 
    Log.d("TAG", "This is trying to run"); 
    Spinner reminderSpinner = (Spinner)view.findViewById(R.id.duplicate_reminder); 
    reminderSpinner.setTag("1"); //this tag will be used to check which it is and correctly put the reminder into its respective String 
    ArrayAdapter<CharSequence> reminderAdapter = ArrayAdapter.createFromResource(
      parent.getContext(), R.array.reminders_array, android.R.layout.simple_spinner_item); 
    reminderAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    reminderSpinner.setAdapter(reminderAdapter); 
    reminderSpinner.setOnItemSelectedListener(new MyOnReminderSelectedListener()); 
    shownReminders.add(position, reminderSpinner); 


    return view; 
} 


/* 
* Listener for when the reminder spinner gets a value the user entered 
* */ 
public class MyOnReminderSelectedListener implements OnItemSelectedListener{ 

    @Override 
    public void onItemSelected(AdapterView<?> parent, View view, int pos, 
      long id) { 
     //does nothing for now 

    } 
    @Override 
    public void onNothingSelected(AdapterView<?> arg0) { 
     // Do nothing for now 
    } 
}//end of MyOnReminderSelectedListener innerclass 

回答

0

在飛旋的數據出現的順序是根據你喂到適配器的數據的順序。如果要更改顯示順序,則需要更改支持適配器的數據中的順序(並使用notifyDataSetChanged()使微調框重新繪製)。

沒有看到代碼,很難知道如何告訴你繼續前進。

+0

我有麻煩設置它。就像我不確定如何正確地做到這一點。我正在使用'ListView'來擴展'BaseAdapter',但它不起作用。對我來說最難的部分是添加一個動態的「微調」。 – Andy 2012-07-08 22:59:50

相關問題