2017-03-01 2 views
-3

Ich arbeite mit einem Projekt mit mehreren Spinnern in einer einzigen App, die Daten aus einer MySQL-Datenbank abruft und in Spinnereien anzeigt. In diesem Code wird nur ein Spinner verwendet, er sammelt Daten aus der MySQL-Datenbank, wie wir mehr als einen Spinner verwenden können.Wie können wir mehrere Spinner mit MySQL-Datenbank-Wert in Android erstellen?

public class MainActivity extends ActionBarActivity { 
ArrayList<String> listItems=new ArrayList<>(); 
    ArrayAdapter<String> adapter; 
Spinner sp,sp1; 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    sp=(Spinner)findViewById(R.id.spinner); 
    adapter=new ArrayAdapter<String>(this,R.layout.spinner_layout,R.id.txt,listItems); 
    sp.setAdapter(adapter); 
    } 
public void onStart(){ 
    super.onStart(); 
    BackTask bt=new BackTask(); 
    bt.execute(); 
} 
    private class BackTask extends AsyncTask<Void,Void,Void> { 
    ArrayList<String> list; 
    protected void onPreExecute(){ 
     super.onPreExecute(); 
     list=new ArrayList<>(); 
    } 
    protected Void doInBackground(Void...params){ 
     InputStream is=null; 
     String result=""; 
     try{ 
      HttpClient httpclient=new DefaultHttpClient(); 
      HttpPost httppost= new HttpPost("http://192.168.1.2/agriculture.php"); 
      HttpResponse response=httpclient.execute(httppost); 
      HttpEntity entity = response.getEntity(); 
      // Get our response as a String. 
      is = entity.getContent(); 
     }catch(IOException e){ 
      e.printStackTrace(); 
     } 

     //convert response to string 
     try{ 
      BufferedReader reader = new BufferedReader(new InputStreamReader(is,"utf-8")); 
      String line = null; 
      while ((line = reader.readLine()) != null) { 
       result+=line; 
      } 
      is.close(); 
      //result=sb.toString(); 
     }catch(Exception e){ 
      e.printStackTrace(); 
     } 

     try{ 

      JSONObject jsono = new JSONObject(result); 
      JSONArray jArray = jsono.getJSONArray("actors"); 
      for(int i=0;i<jArray.length();i++){ 
       JSONObject jsonObject=jArray.getJSONObject(i); 

       list.add(jsonObject.getString("name")); 

      } 
     } 
     catch(JSONException e){ 
      e.printStackTrace(); 
     } 
     return null; 
    } 
    protected void onPostExecute(Void result){ 
     listItems.addAll(list); 
     adapter.notifyDataSetChanged(); 
    } 
} 
+0

Haben Sie etwas versucht? – Wanderer

+0

posten Sie Ihren Code, den Sie für diese –

+0

@ZakiPathan versuchen, schrieb ich meinen Code .. überprüfen Sie bitte – Jincy

Antwort

1
public class MainActivity extends ActionBarActivity { 
ArrayList<String> listItems=new ArrayList<>(); 
    ArrayAdapter<String> adapter; 
Spinner sp,sp1; 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    sp=(Spinner)findViewById(R.id.spinner); 

    } 
public void onStart(){ 
    super.onStart(); 
    BackTask bt=new BackTask(); 
    bt.execute(); 
} 
    private class BackTask extends AsyncTask<Void,Void,Void> { 
    ArrayList<String> list; 
    protected void onPreExecute(){ 
     super.onPreExecute(); 
     list=new ArrayList<>(); 
    } 
    protected Void doInBackground(Void...params){ 
     InputStream is=null; 
     String result=""; 
     try{ 
      HttpClient httpclient=new DefaultHttpClient(); 
      HttpPost httppost= new HttpPost("http://192.168.1.2/agriculture.php"); 
      HttpResponse response=httpclient.execute(httppost); 
      HttpEntity entity = response.getEntity(); 
      // Get our response as a String. 
      is = entity.getContent(); 
     }catch(IOException e){ 
      e.printStackTrace(); 
     } 

     //convert response to string 
     try{ 
      BufferedReader reader = new BufferedReader(new InputStreamReader(is,"utf-8")); 
      String line = null; 
      while ((line = reader.readLine()) != null) { 
       result+=line; 
      } 
      is.close(); 
      //result=sb.toString(); 
     }catch(Exception e){ 
      e.printStackTrace(); 
     } 

     try{ 

      JSONObject jsono = new JSONObject(result); 
      JSONArray jArray = jsono.getJSONArray("actors"); 
      for(int i=0;i<jArray.length();i++){ 
       JSONObject jsonObject=jArray.getJSONObject(i); 

       list.add(jsonObject.getString("name")); 

      } 
     } 
     catch(JSONException e){ 
      e.printStackTrace(); 
     } 
     return null; 
    } 
    protected void onPostExecute(Void result){ 
     listItems.addAll(list); 
     adapter=new ArrayAdapter<String>(this,R.layout.spinner_layout,R.id.txt,listItems); 
    sp.setAdapter(adapter); 
    } 
} 

versuchen dies. Setzen Sie den Adapter, nachdem Ihre Liste gefüllt ist. Wenn dies nicht funktioniert, zögern Sie nicht zu fragen.

+0

ok, lassen Sie mich dies versuchen .. – Jincy

+0

ok @Jincy nehmen Sie sich Zeit und zögern Sie zu fragen –

+0

Danke Zaki .. seine Arbeit ... :) – Jincy

0

Spinner sind recht einfach zu implementieren -
1) Ihre Daten in einem Arraylist von SQLite DB holen.
2) Erstellen Sie einen Spinner - Spinner abcd;
3) Erstellen Sie einen ArrayAdapter mit der von Ihnen definierten ArrayList.
4) Machen Sie Adapter zu einem Dropdown - myAdapter.setDropDownViewResource (android.R.layout.simple_spinner_dropdown_item);
5) Setzen Sie den Adapter des Spinner auf den ArrayAdapter- abcd.setAdapter (myAdapter).

Verwandte Themen