- Forum-Beiträge: 7
01.12.2016, 23:33:50 via Website
01.12.2016 23:33:50 via Website
Ich versuche nun seit mehr als einer Woche den Fehler im Spinner zu finden und komm nicht weiter. Das ist mein erstes Projekt. Ich mach das immer erst mal um ein Gefühl für die Umgebung zu bekommen. Also habe ich im Vids geschaut und versucht daraus eine Lösung zu entwickeln.
Hier mein Problem.
Ich habe einen Spinner mit Custom Adapter nachgebaut. Leider bekomme ich keine Anzeige im Textteil. Der DropDown funktioniert, speichert aber keine Werte. Ich weiß echt nicht mehr wo ich kontrollieren soll.
Also jetzt einmal die Activity und der Adapter:
enter code herepackage com.traincounter.jupp.tc;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.res.Resources;
import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.ProtocolException;
import java.net.URL;
import java.net.URLEncoder;
import java.util.ArrayList;
public class A2100_member_change extends AppCompatActivity {
public ArrayList<A2100_spin_groups_fields> a2100_spin_groups_array = new ArrayList<A2100_spin_groups_fields>();
A2100_spin_groups_fields_adapter spinGroupAdapter;
TextView TFIDMember;
EditText TFMemberName;
CheckBox CBMemberAktiv;
Spinner SPMemberGroup;
String MemberID;
String MemberName;
String MemberAktiv;
String MemberGroup;
@Override
protected void onCreate(Bundle savedInstanceState) {
boolean varAktiv;
super.onCreate(savedInstanceState);
setContentView(R.layout.a2100_member_change);
String method = "SPI";
A2100_member_change.BGT2100 BGT2100 = new A2100_member_change.BGT2100(this);
BGT2100.execute(method, MemberID, MemberName, MemberAktiv, MemberGroup);
// Resources passed to adapter to get image
Resources res = getResources();
TFIDMember = (TextView) findViewById(R.id.A2100_IDMember);
TFMemberName = (EditText) findViewById(R.id.A2100_MemberName);
CBMemberAktiv = (CheckBox) findViewById(R.id.A2100_MemberAktiv);
SPMemberGroup = (Spinner) findViewById(R.id.A2100_MemberGroup);
// Create custom adapter object ( see below CustomAdapter.java )
spinGroupAdapter = new A2100_spin_groups_fields_adapter(A2100_member_change.this, R.layout.a2100_spin_groups_rowlayout, a2100_spin_groups_array,res);
// Set adapter to spinner
SPMemberGroup.setAdapter(spinGroupAdapter);
String[] TagToChange = getIntent().getExtras().getString("TagToChange").split(";");
if(TagToChange[2].equals("0")) {varAktiv = false;} else {varAktiv = true;}
if (TagToChange[0].equals("0"))
{
TFIDMember.setText(null);
TFMemberName.setText(null);
CBMemberAktiv.setChecked(false);
SPMemberGroup.setSelection(0);
} else
{
TFIDMember.setText(TagToChange[0]);
TFMemberName.setText(TagToChange[1]);
CBMemberAktiv.setChecked(varAktiv);
SPMemberGroup.setSelection(0);
}
SPMemberGroup.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
System.out.println("getouched");
System.out.println("WERT : " + SPMemberGroup.getPrompt());
return false;
}
});
// Listener called when spinner item selected
SPMemberGroup.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parentview, View v, int position, long id) {
// Get selected row data to show on screen
String GroupID = ((TextView) v.findViewById(R.id.a2100spinGrp_GroupID)).getText().toString();
String GroupName = ((TextView) v.findViewById(R.id.a2100spinGrp_GroupName)).getText().toString();
String OutputMsg = "Selected Group : \n\n"+GroupID+"\n"+GroupName;
System.out.println("Group : " + GroupID);
Toast.makeText(getApplicationContext(),OutputMsg, Toast.LENGTH_LONG).show();
}
@Override
public void onNothingSelected(AdapterView<?> parentView) {
System.out.println("bin dada ");
}
});
}
public void NewMember(View view)
{
TFIDMember.setText("");
TFMemberName.setText("");
CBMemberAktiv.setChecked(false);
SPMemberGroup.setSelection(0);
}
public void SetMember(View view)
{
String varCheckBox;
if (CBMemberAktiv.isChecked()) {varCheckBox = "1";} else {varCheckBox = "0";}
MemberID = TFIDMember.getText().toString();
MemberName = TFMemberName.getText().toString();
MemberAktiv = varCheckBox;
MemberGroup = SPMemberGroup.getPrompt().toString();
if (MemberName.trim().length() < 6 ) {
Toast.makeText(getApplicationContext(), "Mitgliedsnamen min.6 Zeichen", Toast.LENGTH_LONG).show();
} if (MemberGroup == "0" ){
Toast.makeText(getApplicationContext(), "Es fehlt die Gruppe", Toast.LENGTH_LONG).show();
} else {
String method = "SAV";
A2100_member_change.BGT2100 bgt2100 = new A2100_member_change.BGT2100(this);
bgt2100.execute(method, MemberID, MemberName, MemberAktiv, MemberGroup);
finish();
}
}
public void DelMember(View view)
{
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Löschen ?");
builder.setIcon(R.drawable.ic_del);
builder.setMessage("Soll das Mitglied gelöscht werden ?");
builder.setNegativeButton("Nein", null) ;
builder.setPositiveButton("Ja", new DialogInterface.OnClickListener(){
@Override
public void onClick(DialogInterface dialog, int which) {
delTag();
}
});
Dialog dialog = builder.create();
dialog.show();
}
public void delTag()
{
MemberID = TFIDMember.getText().toString();
if (MemberID.trim().equals("") || MemberID.trim().equals("0")) {
Toast.makeText(this,"Löschen nicht möglich ! GID= 0",Toast.LENGTH_LONG).show();
} else {
String method = "DEL";
A2100_member_change.BGT2100 BGT2100 = new A2100_member_change.BGT2100(this);
BGT2100.execute(method, MemberID, MemberName, MemberAktiv, MemberGroup);
finish();
}
}
public String delSpezialChars (String string)
{
string = string.replace(";",",");
string = string.replace("ä","ae");
string = string.replace("Ä","Ae");
string = string.replace("ö","oe");
string = string.replace("Ö","Oe");
string = string.replace("ü","ue");
string = string.replace("Ü","Ue");
return string;
}
public class BGT2100 extends AsyncTask<String,String,String> {
Context ctx;
BGT2100(Context ctx)
{
this.ctx = ctx;
}
private Z_GlobalVars zGlobalVars = (Z_GlobalVars) getApplicationContext();
String actURL = zGlobalVars.getURL();
@Override
protected void onPreExecute()
{
super.onPreExecute();
}
@Override
protected String doInBackground(String... params)
{
String method = params[0];
String url_new = actURL + "A2100_newmember.php";
String url_sav = actURL + "A2100_savemember.php";
String url_del = actURL + "A2100_delmember.php";
String url_spi = actURL + "A4000_getgroups.php";
String MemberID = params[1];
String MemberName = params[2];
String MemberAktiv = params[3];
String MemberGroup = params[4];
String url_aktiv = "";
String returnMessage = "";
if (method.equals("SAV"))
{
if (MemberID.equals("")) // Prüfen ob neuer DS oder aktualisieren DS
{ url_aktiv = url_new; } else
{ url_aktiv = url_sav; }
try {
if (MemberName.trim().equals(""))
{
returnMessage = "Ohne Mitgliedsname wird nicht gespeichert...";
} else {
MemberName = delSpezialChars(MemberName);
URL url = new URL(url_aktiv);
HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
httpURLConnection.setRequestMethod("POST");
httpURLConnection.setDoOutput(true);
httpURLConnection.setDoInput(true);
OutputStream OS = httpURLConnection.getOutputStream();
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(OS, "UTF-8"));
String data = URLEncoder.encode("ID", "UTF-8") + "=" + URLEncoder.encode(MemberID, "UTF-8") + "&" +
URLEncoder.encode("membername", "UTF-8") + "=" + URLEncoder.encode((MemberName.replace(";", ",")), "UTF-8") + "&" +
URLEncoder.encode("akitv", "UTF-8") + "=" + URLEncoder.encode(MemberAktiv, "UTF-8") + "&" +
URLEncoder.encode("membergroup", "UTF-8") + "=" + URLEncoder.encode(MemberGroup, "UTF-8");
bw.write(data);
bw.flush();
bw.close();
OS.close();
InputStream IS = httpURLConnection.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(IS, "iso-8859-1"));
String response = "";
String line = "";
while ((line = br.readLine()) != null) {
response += line;
}
br.close();
IS.close();
httpURLConnection.disconnect();
System.out.println("Bin da " + response);
returnMessage = response;
}
} catch (ProtocolException e) {
e.printStackTrace();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
} else if (method.equals("SPI"))
{
try {
String result = "";
String lstGroups_JsonString;
JSONObject lstGroupsJsonObj;
JSONArray lstGroupsJsonArr;
URL url = new URL(url_spi);
HttpURLConnection httpURLConnection = (HttpURLConnection)url.openConnection();
httpURLConnection.setRequestMethod("POST");
httpURLConnection.setDoOutput(true);
httpURLConnection.setDoInput(true);
OutputStream OS = httpURLConnection.getOutputStream();
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(OS, "UTF-8"));
String data = URLEncoder.encode("FIELDS", "UTF-8") + "=" + URLEncoder.encode("*", "UTF-8");
bw.write(data);
bw.flush();
bw.close();
OS.close();
InputStream IS = httpURLConnection.getInputStream();
BufferedReader BR = new BufferedReader(new InputStreamReader(IS));
StringBuilder SB = new StringBuilder();
while((lstGroups_JsonString = BR.readLine()) != null)
{
SB.append(lstGroups_JsonString + "/n");
}
BR.close();
IS.close();
httpURLConnection.disconnect();
result = SB.toString().trim();
if(result.contains("[]}")) {result ="{\"allgroups\":[{\"id\":\"0\",\"trainGroup\":\"0 Gruppen gespeichert\"}]}";}
lstGroupsJsonObj = new JSONObject(result);
lstGroupsJsonArr = lstGroupsJsonObj.getJSONArray("allgroups");
int count = 0;
String idGroup = "";
String nameGroup = "";
while(count < lstGroupsJsonArr.length())
{
JSONObject lstTrainersIdx = lstGroupsJsonArr.getJSONObject(count);
A2100_spin_groups_fields spinBeanGroup = new A2100_spin_groups_fields();
idGroup = lstTrainersIdx.getString("id");
nameGroup = lstTrainersIdx.getString("trainGroup");
spinBeanGroup.setIdGroup(idGroup);
spinBeanGroup.setNameGroup(nameGroup);
a2100_spin_groups_array.add(spinBeanGroup);
count++;
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (JSONException e) {
e.printStackTrace();
}
returnMessage = "";
} else if (method.equals("DEL"))
{
try {
URL url = new URL(url_del);
HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
httpURLConnection.setRequestMethod("POST");
httpURLConnection.setDoOutput(true);
OutputStream OS = httpURLConnection.getOutputStream();
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(OS,"UTF-8"));
String data = URLEncoder.encode("ID","UTF-8") + "=" + URLEncoder.encode(MemberID,"UTF-8");
bw.write(data);
bw.flush();
bw.close();
OS.close();
InputStream IS = httpURLConnection.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(IS,"iso-8859-1"));
String response = "";
String line = "";
while ((line = br.readLine()) != null)
{
response+= line;
}
br.close();
IS.close();
httpURLConnection.disconnect();
returnMessage = response;
} catch (ProtocolException e) {
e.printStackTrace();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
return returnMessage;
}
//@Override
protected void onProgressUpdate(String values)
{
super.onProgressUpdate(values);
}
@Override
protected void onPostExecute(String result)
{
if(result != "") {
Toast.makeText(ctx,result,Toast.LENGTH_LONG).show();
}
}
}
}
Nun der Adapter:
package com.traincounter.jupp.tc;
import java.util.ArrayList;
import android.app.Activity;
import android.content.Context;
import android.content.res.Resources;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.TextView;
/ Adapter class extends with ArrayAdapter */
public class A2100_spin_groups_fields_adapter extends ArrayAdapter{
private Activity activity;
private ArrayList data;
public Resources res;
A2100_spin_groups_fields tempValues = null;
LayoutInflater inflater;
/************* CustomAdapter Constructor *****************/
public A2100_spin_groups_fields_adapter(
A2100_member_change activitySpinner,
int textViewResourceId,
ArrayList objects,
Resources resLocal
)
{
super(activitySpinner, textViewResourceId, objects);
/********** Take passed values **********/
activity = activitySpinner;
data = objects;
res = resLocal;
/*********** Layout inflator to call external xml layout () **********************/
inflater = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public View getDropDownView(int position, View convertView,ViewGroup parent) {
System.out.println("dropdownview");
return getCustomView(position, convertView, parent);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
System.out.println("---------------------view");
return getCustomView(position, convertView, parent);
}
// This funtion called for each row ( Called data.size() times )
public View getCustomView(int position, View convertView, ViewGroup parent) {
/********** Inflate spinner_rows.xml file for each row ( Defined below ) ************/
View row = inflater.inflate(R.layout.a2100_spin_groups_rowlayout, parent, false);
/***** Get each Model object from Arraylist ********/
tempValues = null;
tempValues = (A2100_spin_groups_fields) data.get(position);
TextView GrpID = (TextView)row.findViewById(R.id.a2100spinGrp_GroupID);
TextView GrpName = (TextView)row.findViewById(R.id.a2100spinGrp_GroupName);
// Set values for spinner each row
GrpID.setText(tempValues.getIdGroup());
GrpName.setText(tempValues.getNameGroup());
return row;
}
}
Hier eine Ansicht:
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.