2012-07-08 2 views
0

내 질문은 알림 Spinner 님의 주위를 돌고 있습니다. 사용자가 최대 5 개의 미리 알림을 추가하도록 허용하려고합니다. 그러나 나는 또한 다섯 가지를 모두 보여주고 싶지 않습니다. 이러한 미리 알림은 각각 Spinner입니다. 여러 가지 선택 사항이 있습니다. 사용자가 클릭하여 알림을 추가하면 알림이 추가됩니다. 한 사람을 데려 가고 싶을 때도 할 수 있고, 다른 사람을 추가하고 싶을 때 새로운 사람이 맨 아래에 나타납니다. 이 문제를 어떻게 해결할 생각인가요?동적 Spinner를 추가하고 제거하는 방법은 무엇입니까?

내 원래 구현은 5가 이미 정의되어 있지만 (4 "사라짐") 사용자가 추가하려는 경우 "가시적"이됩니다. 문제는보기를 "사라지게"하여 미리 알림을 제거하고 다시 추가하는 경우 하단에 표시되지 않고 원래의 위치 (원래의 회 전자가 아닌 경우)로 되돌아갑니다. . 이제 특정 뷰에서 스피너를 동적으로 추가하는 방법에 관해서는 분실했습니다. 어떤 아이디어라도 높이 평가할 것입니다!

편집 : 내가 지금까지/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

설정하는 데 문제가 있습니다. 마찬가지로 나는 그것을 정확하게하는 방법을 잘 모르겠다. 나는'BaseAdapter'를 확장하는'ListView'를 사용하고 있지만 작동하지 않습니다. 가장 어려운 부분은 역동적 인 '회 전자 (Spinner)'를 추가하는 것입니다. – Andy

관련 문제