H
haner
Ambitioniertes Mitglied
- 0
Hallo,
derzeit befindet sich ein Spinner auf meiner Seite, dessen Items von einer mysql-Datenbank abgerufen werden. Das funktioniert bereits.
Nun möchte ich noch einen zweiten Spinner auf der Seite integrieren, dessen Items aus einer weiteren Tabelle der mysql-Datenbank abgerufen werden.
Leider passiert beim Anklicken des zweiten Spinners nichts. Bin Anfänger und könnte mir vorstellen, dass das mit den 2 BackTask-Klassen keine schöne Lösung ist??? Wer kann mir helfen?
Hier der Code:
derzeit befindet sich ein Spinner auf meiner Seite, dessen Items von einer mysql-Datenbank abgerufen werden. Das funktioniert bereits.
Nun möchte ich noch einen zweiten Spinner auf der Seite integrieren, dessen Items aus einer weiteren Tabelle der mysql-Datenbank abgerufen werden.
Leider passiert beim Anklicken des zweiten Spinners nichts. Bin Anfänger und könnte mir vorstellen, dass das mit den 2 BackTask-Klassen keine schöne Lösung ist??? Wer kann mir helfen?
Hier der Code:
Code:
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private Spinner sp_kategorie, sp_preisrel;
//Spinner Kategorie
ArrayList<String> listItems = new ArrayList<>();
//Spinner Preis relativ
ArrayList<String> listItemsPreisrel = new ArrayList<>();
//Spinner
ArrayAdapter<String> adapter1;
ArrayAdapter<String> adapter2;
HttpURLConnection urlConnection = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_anghinzu);
//Spinner Kategorie
sp_kategorie = (Spinner) findViewById(R.id.sp_kategorie);
adapter1 = new ArrayAdapter<String>(this, R.layout.spinner_layout, R.id.txt, listItems);//adapter = new ArrayAdapter<String>(this, R.layout.spinner_layout,R.id.txt, listItems);
sp_kategorie.setAdapter(adapter1);
//Spinner Preis relativ
sp_preisrel = (Spinner) findViewById(R.id.sp_preisrel);
adapter2 = new ArrayAdapter<String>(this, R.layout.spinner_layout, R.id.txt, listItemsPreisrel);
sp_preisrel.setAdapter(adapter2);
}
//Spinner
protected void onStart(){
super.onStart();
BackTask bt = new BackTask();
bt.execute();
}
//Spinner Kategorie aus mysql laden
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 {
URL url = new URL("http://www.techcad.bplaced.net/kategorie.php");
urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.connect();
is = urlConnection.getInputStream();
}catch (Exception e) {
e.printStackTrace();
}
try{
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(is,"utf-8"));
String line ="";
while((line = bufferedReader.readLine())!=null){
result+=line;
}
is.close();
}catch(IOException e){
e.printStackTrace();
}
try{
JSONArray jsonArray = new JSONArray(result);
for(int i=0; i<jsonArray.length();i++){
JSONObject jsonObject=jsonArray
.getJSONObject(i);
list.add(jsonObject.getString("Kategorie"));//iname
}
}catch (JSONException e){
e.printStackTrace();
}
return null;
}
protected void onPostExecute (Void result){
listItems.addAll(list);
adapter1.notifyDataSetChanged();
}
}
//Spinner Preis relativ aus mysql laden
private class BackTask1 extends AsyncTask<Void, Void, Void>{
ArrayList<String> list1;
protected void onPreExecute(){
super.onPreExecute();
list1 = new ArrayList<>();
}
protected Void doInBackground(Void...params){
InputStream is = null;
String result="";
try {
URL url = new URL("http://www.techcad.bplaced.net/preis_rel.php");
urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.connect();
is = urlConnection.getInputStream();
}catch (Exception e) {
e.printStackTrace();
}
// Convert the response string
try{
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(is,"utf-8"));
String line ="";
while((line = bufferedReader.readLine())!=null){
result+=line;
}
is.close();
}catch(IOException e){
e.printStackTrace();
}
// Parse json string
try{
JSONArray jsonArray = new JSONArray(result);
for(int i=0; i<jsonArray.length();i++){
JSONObject jsonObject=jsonArray
.getJSONObject(i);
list1.add(jsonObject.getString("Einheit"));//iname
}
}catch (JSONException e){
e.printStackTrace();
}
return null;
}
protected void onPostExecute (Void result){
listItemsPreisrel.addAll(list1);
adapter2.notifyDataSetChanged();
}
}