- Forum-Beiträge: 609
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
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.