2013-03-28 2 views
0

내 배열 데이터 목록과 삭제 버튼을 보여주는 스피너가 있습니다. 내가하려는 것은 삭제 버튼을 클릭하면 자동으로 선택한 회 전자 값을 삭제하지만,이를 수행하는 방법이 확실하지 않습니다.버튼 클릭시 선택한 스피너 아이템이 자동으로 제거됩니다.

삭제 버튼 클릭 기능에서 내 활동을 다시 디버깅 한 후 선택한 회 전자 값을 삭제했지만 삭제 버튼을 클릭하면 선택한 회 전자 값을 자동으로 삭제하고 싶습니다.

package quesansw.the1; 

import java.util.ArrayList; 
import android.app.Activity; 
import android.app.Dialog; 
import android.database.Cursor; 
import android.database.sqlite.SQLiteDatabase; 
import android.net.NetworkInfo.State; 
import android.os.Bundle; 
import android.view.View; 
import android.view.Window; 
import android.view.WindowManager; 
import android.widget.AdapterView; 
import android.widget.ArrayAdapter; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.Spinner; 
import android.widget.AdapterView.OnItemSelectedListener; 

public class View1 extends Activity { 
    SQLiteDatabase db; 
    ArrayAdapter adapter; 
    private String array_spinner[]; 

    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     db = openOrCreateDatabase("mydatabase.db", 
       SQLiteDatabase.CREATE_IF_NECESSARY, null); 

     final Dialog d1 = new Dialog(this); 
     Window window = d1.getWindow(); 
     window.setFlags(WindowManager.LayoutParams.FLAG_BLUR_BEHIND, 
       WindowManager.LayoutParams.FLAG_BLUR_BEHIND); 

     //d1.setTitle("Login"); 

     d1.setContentView(R.layout.view); 
     d1.show(); 
     Button Click = (Button) d1.findViewById(R.id.Click); 
     Button Save = (Button) d1.findViewById(R.id.Save); 
     Button Delete = (Button) d1.findViewById(R.id.Delete); 

     ArrayList<String> list = new ArrayList<String>(); 
     Cursor cursor = db.rawQuery("select * from records", null); 
     list.add(""); 
     if (cursor.moveToFirst()) 
     { 
      do 
      { 
       list.add(cursor.getString(0)); 
      } 
      while (cursor.moveToNext()); 
     } 

     /*array_spinner=new String[20]; 
     array_spinner[0]=list.get(0);*/ 
     Spinner s = (Spinner) d1.findViewById(R.id.tittle_spinner); 
     adapter = new ArrayAdapter<Object>(this,android.R.layout.simple_spinner_item, list.toArray()); 

     adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
     s.setAdapter(adapter); 


     /*Save.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 

       Spinner s = (Spinner) d1.findViewById(R.id.tittle_spinner); 
       String str = s.getSelectedItem().toString(); 
       System.out.println("********"+str); 
       Cursor cur1=db.rawQuery("select * from records where tittle='"+str+"' ",null); 
       cur1.moveToNext(); 
       String str1=cur1.getString(1); 

       EditText ans = (EditText) d1.findViewById(R.id.text); 
       ans.setText(str1); 

      } 
      });*/ 

     Delete.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 

       Spinner s = (Spinner) d1.findViewById(R.id.tittle_spinner); 
       String str = s.getSelectedItem().toString(); 
       db.execSQL("delete from records where tittle='"+str+"' "); 

      } 
      }); 


     Click.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 

       Spinner s = (Spinner) d1.findViewById(R.id.tittle_spinner); 
       String str = s.getSelectedItem().toString(); 
       System.out.println("********"+str); 
       Cursor cur1=db.rawQuery("select * from records where tittle='"+str+"' ",null); 
       cur1.moveToNext(); 
       String str1=cur1.getString(1); 

       EditText ans = (EditText) d1.findViewById(R.id.text); 
       ans.setText(str1); 


      } 
      }); 
    } 
} 

1) 여기 내 활동 화면이 스피너 값으로

Activity Screen Shot

2) 또 다른 스크린 샷으로 찍은 사진입니다 : deleteButton의 OnClickListener를에서

Spinner Values

+1

코드, 남성, 공동은 어디입니까? 드? 우리는 모두 '회 전자 (Spinner)'가 어떻게 보이는지 알지만, 시도한 내용이 보이지 않으면 코드에 어떤 문제가 있는지 알지 못합니다. – codeMagic

+0

기 코드를 지금 보관합니다 – sid123

답변

0

선택한 스피너를 제거 값을 배열 데이터 목록에서 제거하고 onnotifydatasetChanges를 호출하거나 setSpinner 어댑터에 삭제 후 새로운 배열리스트.

public class MainActivity extends Activity { 

Spinner spin; 
Button delete; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    delete = (Button) findViewById(R.id.button1); 
    spin = (Spinner) findViewById(R.id.spinner1); 

    final ArrayList<String> spinneritems = new ArrayList<String>(); 

    spinneritems.add("item 1"); 
    spinneritems.add("item 2"); 
    spinneritems.add("item 3"); 
    spinneritems.add("item 4"); 
    spinneritems.add("item 5"); 


    final ArrayAdapter<String> adp = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,spinneritems); 
    adp.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    spin.setAdapter(adp); 

    delete.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 

      String selectedSpinner = spin.getSelectedItem().toString(); 
      spinneritems.remove(selectedSpinner); 
      adp.notifyDataSetChanged(); 
     } 
    }); 
} 
} 
} 
+0

더 이상 존재하지 않으면 사례를 확인해야합니다 회 전자 아이템 남았습니다. 값을 직접 추가했습니다. Sqlit DB에서 값을 가져옵니다. – SKK

+0

감사합니다. 잊어 버렸습니다. – sid123

0

Spinner을 여러 번 선언하고 초기화 하시겠습니까? 그때 때 업데이트 할 delete button 전화 adapter.notifyDataSetChanged()을 클릭 onCreate()

public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     db = openOrCreateDatabase("mydatabase.db", 
      SQLiteDatabase.CREATE_IF_NECESSARY, null); 
     spinner = (Spinner) d1.findViewById(R.id.tittle_spinner); //initialize your spinner here 

     final Dialog d1 = new Dialog(this); 

에 다음

public class View1 extends Activity { 
    SQLiteDatabase db; 
    ArrayAdapter adapter; 
    private String array_spinner[]; 
    Spinner spinner;    // Declare your spinner here 

Array 및 삭제 버튼을 클릭 리스너에 스피너

+0

고맙습니다. – sid123

+0

@ sid123 여러분을 환영합니다. 우리가 도울 수있어서 기뻐요. 감사의 말을 수락 해주십시오. – codeMagic

0

코드

Spinner s = (Spinner) d1.findViewById(R.id.tittle_spinner); 
String str = s.getSelectedItem().toString(); 
adapter.remove(str); 
adapter.notifyDataSetChanged(); 
s.setSelection(0); 
다음을 추가 그것을 할
+0

감사합니다. 잊어 버렸습니다. – sid123

관련 문제