Hi Leute!
Ich programmiere hier eine kleine Übung zu einem AsyncTask. Nun ist es so, dass ich über ein Textfeld eine int-Variable laden will, die mir dann die Obergrenze einer for-Schleife bilden soll. Mein Code sieht so aus:
Die for-Schleife findet ihr sicherlich und darüber ist meine Cast vom String des Textfeldes zum int. Wenn ich nun diese App ausführe, bekomme ich die Fehlermeldung, dass es eine NullpointerException gab.
Wenn ich die Zeile mit dem Cast auskommentiere und die Obergrenze der for-Schleife hart codiere, dann läuft der Code aber. Auch beim Debuggen fällt mir der Code beim Cast aus.
Was ist daran falsch? Der Sytax-Checker sagt aber, das alles korrekt ist!
Kann mir jemand helfen?
Ich programmiere hier eine kleine Übung zu einem AsyncTask. Nun ist es so, dass ich über ein Textfeld eine int-Variable laden will, die mir dann die Obergrenze einer for-Schleife bilden soll. Mein Code sieht so aus:
Code:
package com.example.asynctask;
import android.app.Activity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ProgressBar;
public class MainActivity extends Activity
{
public ProgressBar progressbar1;
public Button button1;
private EditText edittext1;
//Die Activity wird erzeugt
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//Deklarationen
progressbar1 = (ProgressBar) findViewById(R.id.progressBar1);
button1 = (Button) findViewById(R.id.button1);
}
//Die Activity ist sichtbar
@Override
protected void onStart()
{
super.onStart();
}
//Die Activity ist sichtbar
@Override
protected void onResume()
{
super.onResume();
}
public void startAction(View button1)
{
new MyAsyncTask().execute();
}
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
//Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
private class MyAsyncTask extends AsyncTask <Void, Void, Void>
{
@Override
protected void onPreExecute()
{
button1.setEnabled(false);
progressbar1.setVisibility(View.VISIBLE);
}
@Override
protected Void doInBackground(Void...params)
{
int counter = Integer.valueOf(edittext1.getText().toString());
for(int i=0; i<counter; i++)
{
Log.d("Test: ", String.valueOf(i));
}
return null;
}
@Override
protected void onPostExecute(Void result)
{
button1.setEnabled(true);
progressbar1.setVisibility(View.INVISIBLE);
}
}
//Die Activity ist nicht mehr sichtbar
@Override
protected void onStop()
{
super.onStop();
}
//Die Activity wird zerstört
@Override
protected void onDestroy()
{
super.onDestroy();
}
}
Die for-Schleife findet ihr sicherlich und darüber ist meine Cast vom String des Textfeldes zum int. Wenn ich nun diese App ausführe, bekomme ich die Fehlermeldung, dass es eine NullpointerException gab.
Wenn ich die Zeile mit dem Cast auskommentiere und die Obergrenze der for-Schleife hart codiere, dann läuft der Code aber. Auch beim Debuggen fällt mir der Code beim Cast aus.
Was ist daran falsch? Der Sytax-Checker sagt aber, das alles korrekt ist!
Kann mir jemand helfen?
Zuletzt bearbeitet: