2013-05-03 4 views
0

누구나 스피너를 다시로드 할 수있는 코드를 말해 줄 수 있습니까?안드로이드에서 스피너를 다시로드하는 방법은 무엇입니까?

일부 항목을 추가하고 원하지 않는 항목을 삭제할 수있는 작은 앱을 만들었습니다. 추가 된 항목은 회 전자에 표시됩니다. 회 전자에서 항목을 선택하고 삭제 버튼을 클릭하여 항목을 삭제하면 항목이 데이터베이스에서 삭제됩니다. & 토스트에 "항목 삭제됨"이 표시됩니다. 하지만 로그 아웃 한 다음 다시 로그인 할 때까지 여전히 회 전자에 표시됩니다. 여기서 삭제 버튼을 클릭하면 다시 회 전자를 다시로드해야한다고 생각합니다. 아무도 나를 도울 수 있습니까?

public class DeleteChildActivity extends Activity { 
    TextView name; 
    Button delete; 
    Spinner spinner2; 

    private String URL = "/ParentProfileServlet"; 
    private String URL1 = "/ChildProfileServlet"; 
    private String URL2 = "/DeleteChildServlet"; 
    ArrayList<NameValuePair> postparameter; 

    public static int selectChildId; 
    public static String imei; 

    ParentDetailsMod parentModel; 
    private ArrayList<ChildDetails> childArray = null; 

    public void onCreate(Bundle savedInstanceState) { 

     super.onCreate(savedInstanceState); 
     setContentView(R.layout.delete_child); 

     delete = (Button) findViewById(R.id.B_delchild); 

     spinner2 = (Spinner) findViewById(R.id.childspinner); 


     childArray = new SelectParser().parseSelectXml(response); 
     ArrayList<String> stringArray = new ArrayList<String>(); 
     for (ChildDetails childModel : childArray) { 
      String str; 
      str = childModel.getName(); 
      stringArray.add(str); 
     } 
     // spinner = (Spinner) findViewById(R.id.spinner11); 
     ArrayAdapter<String> adapter = new ArrayAdapter<String>(
       getApplicationContext(), android.R.layout.simple_list_item_1, 
       stringArray); 
     adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
     spinner2.setAdapter(adapter); 
     spinner2.setPrompt(getString(R.string.selectLabel)); 
     spinner2.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 

      @Override 
      public void onItemSelected(AdapterView<?> arg0, View arg1, 
        int position, long arg3) { 
       imei = childArray.get(position).getImei_num(); 
       selectChildId = childArray.get(position).getChild_id(); 

      } 

      @Override 
      public void onNothingSelected(AdapterView<?> arg0) { 
       // TODO Auto-generated method stub 

      } 
     }); 


     delete.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       // spinner.performClick(); 
       // String id = spinner2.getSelectedItem().toString(); 
       // selectChildId = id.substring(0, id.indexOf("--")); 
       postparameter = new ArrayList<NameValuePair>(); 

       String parent_id = LoginPageActivity.id; 
       postparameter 
         .add(new BasicNameValuePair("parent_id", parent_id)); 
       postparameter.add(new BasicNameValuePair("child_id", 
         selectChildId + "")); 
       String response = null; 

       try { 
        response = CustomHttpClient.executeHttpPost(URL2, 
          postparameter); 
        System.out.println("response:" + response); 

        if (response.trim().compareTo("success") == 0) { 
         Toast.makeText(getApplicationContext(), 
           "Child deleted", Toast.LENGTH_LONG).show(); 

        } else { 
         Toast.makeText(getApplicationContext(), 
           "Failed to delete", Toast.LENGTH_LONG).show(); 
        } 
       } catch (Exception e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
       } 
      } 
     }); 
+0

이 어댑터 또는 몇 가지 가능한 코드를 보여 스피너 새로 고침() 메소드 spinner.notifyDataSetChanged를 호출해야합니다. –

+0

Spinner.setAdapter (새 어댑터)는 어떻습니까? ? – RRTW

+0

작동하지 않습니다! –

답변

0

당신은) (notifyDataSetChanged을 사용할 수 있습니다; 메소드를 사용하여 어댑터를 다시로드하거나 변경된 데이터를 표시하십시오.

+0

어떻게 참조할까요? –

0

당신은 당신 어댑터 목록에서 항목을 삭제 한 다음

관련 문제