2013-03-28 78 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)另一截屏的以微調值:

Spinner Values

+1

Code,man,where's the co德?我們都知道'Spinner'是什麼樣子,但是如果我們沒有看到你所嘗試的代碼,我們不知道你的代碼有什麼問題 – codeMagic

+0

ki現在保存代碼 – sid123

回答

0

在deleteButton的onClickListener,刪除選定的微調值從數組數據列表中調用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

thanku ..談它。 – sid123

0

爲什麼要宣佈並初始化您的Spinner這麼多次?只要做到這一點,一旦

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

然後在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); 

然後當你點擊delete button電話adapter.notifyDataSetChanged()更新您的Array和微調

+0

thanku..got it。 – 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

thanku.got it。 – sid123