M
MegaChroniX
Neues Mitglied
- 1
Hallo,
ich habe ein ein riesen Problem und weiß dieses nicht zu lösen
Ich entwickel eine App und teste auf einem Galaxy Nexus und Galaxy S2 parallel.
Das Problem ist, dass die Toast-Nachricht auf dem Nexus nicht angezeigt werden...
Auf dem S2 allerdings schon, dort wird alles wie es soll anzezeigt...
Wie kann dieses Problem auftreten?
Wenn die Toasts fehlerhaft sind müssten sie ja auf beiden Geräten nicht angezeigt werden...
PS: es geht werder mit this noch mit getApplicationContext()
ich habe ein ein riesen Problem und weiß dieses nicht zu lösen
Ich entwickel eine App und teste auf einem Galaxy Nexus und Galaxy S2 parallel.
Das Problem ist, dass die Toast-Nachricht auf dem Nexus nicht angezeigt werden...
Auf dem S2 allerdings schon, dort wird alles wie es soll anzezeigt...
Wie kann dieses Problem auftreten?
Wenn die Toasts fehlerhaft sind müssten sie ja auf beiden Geräten nicht angezeigt werden...
Code:
import ....
/**
* Startseite des Programms. Anmeldefester für den Benutzer.
*/
public class LoginActivity extends Activity implements OnClickListener
{
private static String TAG = "LoginActivity";
private EditText username;
private EditText password;
private String user;
private String pass;
private TextView error;
private Button login;
private int lo = 0;
private ProgressDialog pd;
/*
* Wird bei Beendigung des Threads aufgerufen.
*/
private Handler handler = new Handler()
{
@Override
public void handleMessage(Message msg)
{
pd.dismiss();
doLogin();
}
};
/* Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.login);
// Zuweisen der Textfelder an Objekte
username = (EditText) findViewById(R.id.editTextUsername);
password = (EditText) findViewById(R.id.editTextPassword);
error = (TextView) findViewById(R.id.textViewLoginError);
login = (Button) findViewById(R.id.buttonLogin);
login.setOnClickListener(this);
}
@Override
public void onClick(View v)
{
// Auslesen von Benutzername und Passwort
user = username.getText().toString();
pass = password.getText().toString();
// Anzeige eines "Warten Dialogs" solange die Anmeldedaten vom
// Webservice kontrolliert werden.
pd = ProgressDialog.show(this, getString(R.string.wait), getString(R.string.logging_in), true, false);
Thread thread = new Thread()
{
@Override
public void run()
{
// Prüfen ob der login gültig ist
lo = [...netz transaktion, gibt den code zurück ob login gültig etc...]
handler.sendEmptyMessage(0);
}
};
thread.start();
}
// Verarbeiten des Logins
private void doLogin()
{
switch (lo)
{
// Bei erfolgreichem Login
case 1:
Intent in = new Intent(this, RosterActivity.class);
in.putExtra("mail", user);
startActivity(in);
error.setText("");
break;
// Bei Misserfolg(Login)
case 0:
// Anzeigen eines Toast mit der Fehlermeldung über einen Falschen
// Login
Toast.makeText(getApplicationContext(), getString(R.string.login_wrong), Toast.LENGTH_SHORT).show();
error.setText(getString(R.string.login_wrong));
break;
// Wenn Server nicht antwortet
case -3:
// Toast mit der Fehlermeldung dass das Netz nicht verfügbar ist.
Toast.makeText(getApplicationContext(), getString(R.string.server_timeout), Toast.LENGTH_SHORT).show();
error.setText(getString(R.string.server_timeout));
break;
// Falls sonst was passiert
default:
Toast.makeText(getApplicationContext(), getString(R.string.unknown_error), Toast.LENGTH_SHORT).show();
break;
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.server, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
switch (item.getItemId())
{
case R.id.menu_server:
Intent intent = new Intent(this, ServerActivity.class);
startActivity(intent);
return true;
default:
return super.onOptionsItemSelected(item);
}
}
}