
- Forum-Beiträge: 671
01.01.2020, 17:26:03 via Website
01.01.2020 17:26:03 via Website
Hallo zusammen
Meine Toasts werden nicht angezeigt. Kann mir Jemand sagen warum?
package ch.robbisoft.sakristanhilfe;
import android.app.DatePickerDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.view.WindowManager;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.Set;
public class eingabe extends AppCompatActivity {
public static final String APPNAME = "SAKRISTAN";
public static final String FELDNAME = "TEXT";
public static final String DATNAME = "STRDAT";
public static final String DATUM = "dd. MMMM yyyy";
private Context ctx;
private Button btn_speichern;
private TextView edt_datum;
private ListView liste;
private listAdapter adapter;
private List<Eintrag> EintragListe;
private int n_position;
private Button btn_suche;
private Button btn_plus;
private SimpleDateFormat datumsformat;
private AlertDialog.Builder dialog;
private int n_aktpos;
private String str_jetzt;
private Memory speicher;
private Intent param;
private Eintrag inhalt;
private DatePickerDialog dat_dialog;
private Calendar kalender;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_eingabe);
ctx = getApplication();
speicher = new Memory(ctx);
//macht das die Tastatur nicht gliech angezeigt wird
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
datumsformat = new SimpleDateFormat(DATUM);
EintragListe = new ArrayList<Eintrag>();
inital();
edt_datum = (TextView) findViewById(R.id.edt_datum);
edt_datum.setText(get_datum());
edt_datum.setOnClickListener(new TextView.OnClickListener() {
@Override
public void onClick(View view) {
kalender = Calendar.getInstance();
int n_jahr, n_monat, n_tag;
n_jahr = kalender.get(Calendar.YEAR);
n_monat = kalender.get(Calendar.MONTH);
n_tag = kalender.get(Calendar.DAY_OF_MONTH);
dat_dialog = new DatePickerDialog(eingabe.this, dat_horcher, n_jahr, n_monat, n_tag);
dat_dialog.show();
}
});
liste = (ListView) findViewById(R.id.livi_text);
adapter = new listAdapter(ctx, 0);
liste.setAdapter(adapter);
//Liste aufbauen
adapter.notifyDataSetInvalidated();
//Klick Ereignisse
liste.setOnItemLongClickListener(new ListView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
Log.d("sakristanhilfe", "LongClickEreignis");
//Langes Klicken auf ein Feld in der ListView
n_aktpos = position;
clickMinus(position);
return true;
}
});
liste.setOnItemClickListener(new ListView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
Log.d("sakristanhilfe", "ClickEreignis");
param = new Intent(ctx, work.class);
n_position = i;
inhalt = EintragListe.get(n_position);
param.putExtra("datum", datumsformat.format(inhalt.dat_datum));
param.putExtra("text", inhalt.str_text);
startActivityForResult(param, 2);
}
});
btn_speichern = (Button) findViewById(R.id.btn_speichern);
btn_speichern.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
speicher.save(EintragListe);
finish();
}
});
btn_suche = (Button) findViewById(R.id.btn_suchen);
btn_suche.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
datumsformat = new SimpleDateFormat(DATUM);
try {
Date such_dat = datumsformat.parse(edt_datum.getText().toString());
//Datensuchen
n_position = -1;
int n_menge = EintragListe.size();
n_menge--;//weil es bei 0 beginnt
Eintrag inhalt = new Eintrag();
inhalt.str_text = getResources().getString(R.string.lbl_kein);
do{
n_position++;
inhalt = EintragListe.get(n_position);
}while ((such_dat.compareTo(inhalt.dat_datum) != 0) && (n_position < n_menge) );
param = new Intent(ctx, work.class);
param.putExtra("datum", datumsformat.format(such_dat));
param.putExtra("text", inhalt.str_text);
//nur Aufrufen wenn auch was gefunden wurde
if(n_position < n_menge) {
startActivityForResult(param, 4);
}else{
Toast.makeText(ctx, inhalt.str_text, Toast.LENGTH_LONG).show();
}
} catch (ParseException e) {
e.printStackTrace();
Toast.makeText(ctx, ctx.getResources().getString(R.string.lbl_error) + e.getMessage(), Toast.LENGTH_LONG).show();
}
}
});
btn_plus = (Button) findViewById(R.id.btn_plus);
btn_plus.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent AufRuf = new Intent(ctx, work.class);
AufRuf.putExtra("datum", str_jetzt);
AufRuf.putExtra("text", "");
startActivityForResult(AufRuf, 1);
}
});
liste.requestFocus();
}
/**********************************************************************************************
* Zeig einen Löschdialog an
*
* @autor robbisoft @version 18. November 2019
* @param
* @return
**********************************************************************************************/
private void clickMinus(int n_pos) {
try {
Eintrag pool;
pool = EintragListe.get(n_pos);
dialog = new AlertDialog.Builder(eingabe.this);
dialog.setMessage(getResources().getString(R.string.lbl_delete) + pool.str_text);
dialog.setPositiveButton(getResources().getString(R.string.lbl_ja), positivListener);
dialog.setNegativeButton(getResources().getString(R.string.lbl_nein), negativListener);
dialog.show();
}catch (Exception e){
e.getMessage();
Toast.makeText(ctx, ctx.getResources().getString(R.string.lbl_error) + e.getMessage(), Toast.LENGTH_LONG).show();
}
}
DialogInterface.OnClickListener positivListener = new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
EintragListe.remove(n_aktpos);
adapter.notifyDataSetInvalidated();
dialogInterface.dismiss();
}
};
DialogInterface.OnClickListener negativListener = new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
dialogInterface.dismiss();
}
};
/**********************************************************************************************
* Nimt die initialisierung des Fensters vor
*
* @autor robbisoft @version 9. Februar 2019
* @param
* @return
**********************************************************************************************/
private void inital(){
Date jetzt;
Calendar zeitstempel = Calendar.getInstance();
jetzt = zeitstempel.getTime();
str_jetzt = datumsformat.format(jetzt);
//Laden der Liste
EintragListe = speicher.load();
}
/**********************************************************************************************
* Ermittelt das aktuelle Datum und gibt es als String zurück
*
* @autor robbisoft @version 2.02.2019
* @param
* @return aktuelles Datum als String
**********************************************************************************************/
private String get_datum(){
String d_jetzt;
//Zeitermitteln und ausgeben
Calendar zeitstempel = Calendar.getInstance();
SimpleDateFormat datumsformat = new SimpleDateFormat("d. MMMM yyyy");
d_jetzt = datumsformat.format(zeitstempel.getTime());
return d_jetzt;
}
/**********************************************************************************************
* Legt einen Eintrag in den Speicher
*
* @autor robbisoft @version 13.02.2019
* @param "String zum Speichern"
* @return
**********************************************************************************************/
private void speichern(List<String> d_datum, List<String> str_text){
SharedPreferences pref = getSharedPreferences(APPNAME, 0);
SharedPreferences.Editor edit = pref.edit();
edit.putStringSet(DATNAME, (Set<String>
d_datum);
edit.putStringSet(FELDNAME, (Set<String>
str_text);
edit.commit();
}
/**********************************************************************************************
* Liest einen Eintrag aus dem Speicher
*
* @autor robbisoft @version 10.02.2019
* @param "String zum Speichern"
* @return
**********************************************************************************************/
private List<String> lesen(){
List<String> str_text;
SharedPreferences pref = getSharedPreferences(APPNAME, 0);
// str_text = pref.getString(FELDNAME, "Fehler");
str_text = (List) pref.getStringSet(FELDNAME, null);
return str_text;
}
/**********************************************************************************************
* Adapter um die Besonderheiten einzugeben
*
* @autor robbisoft @version 6. November 2019
* @param "Liste der Besonderheitn"
* @return
**********************************************************************************************/
class listAdapter extends ArrayAdapter<Eintrag>{
private SimpleDateFormat dataformat;
public listAdapter( Context context, int resource) {
super(context, resource);
dataformat = new SimpleDateFormat(DATUM);
}
@Override
public int getCount(){
int n_anzahl = EintragListe.size();
return n_anzahl;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if(convertView==null){
convertView = getLayoutInflater().inflate(R.layout.list_element, null);
}
Eintrag eintrag;
eintrag = EintragListe.get(position);
TextView datum = (TextView) convertView.findViewById(R.id.edt_datum);
datum.setText(dataformat.format(eintrag.dat_datum));
TextView text = (TextView) convertView.findViewById(R.id.edt_text);
text.setText(eintrag.str_text);
return convertView;
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
try{
switch(requestCode) {
case 1: {
//bei 9 wurde der Abbrechenbutton gedrückt
if(resultCode != 9) {
String str_datum, str_text;
str_datum = data.getStringExtra("datum");
str_text = data.getStringExtra("text");
Eintrag in = new Eintrag();
in.dat_datum = datumsformat.parse(str_datum);
in.str_text = str_text;
EintragListe.add(in);
//Liste aufbauen
adapter.notifyDataSetInvalidated();
return;
}
}
case 2: {
//bei 9 wurde der Abbrechenbutten gedrückt
if(resultCode != 9) {
String str_datum, str_text;
str_datum = data.getStringExtra("datum");
str_text = data.getStringExtra("text");
EintragListe.get(n_position).dat_datum = datumsformat.parse(str_datum);
EintragListe.get(n_position).str_text = str_text;
//Liste aufbauen
adapter.notifyDataSetInvalidated();
return;
}
}
case 4:{
//bei 9 wurde der Abbrechenbutten gedrückt
if(resultCode != 9) {
String str_datum, str_text;
str_datum = data.getStringExtra("datum");
str_text = data.getStringExtra("text");
EintragListe.get(n_position).dat_datum = datumsformat.parse(str_datum);
EintragListe.get(n_position).str_text = str_text;
//Liste aufbauen
adapter.notifyDataSetInvalidated();
return;
}
}
}
} catch (ParseException e) {
e.printStackTrace();
Toast.makeText(ctx, ctx.getResources().getString(R.string.lbl_error) + e.getMessage(), Toast.LENGTH_LONG).show();
}
}
private DatePickerDialog.OnDateSetListener dat_horcher = new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker datePicker, int n_jahr, int n_monat, int n_tag) {
datumsformat = new SimpleDateFormat("d.MM.yyyy");
try {
Date datum = datumsformat.parse(Integer.toString(n_tag) + "." + Integer.toString(n_monat + 1) + "." + Integer.toString(n_jahr) );
datumsformat = new SimpleDateFormat(DATUM);
edt_datum.setText(datumsformat.format(datum));
} catch (ParseException e) {
e.printStackTrace();
Toast.makeText(ctx, ctx.getResources().getString(R.string.lbl_error) + e.getMessage(), Toast.LENGTH_LONG).show();
}
}
};
}
Gruss Renato