Asyntask Earn Score example in Android
Step 1 : create layout activity.
Step 2 : create MainActivity like below attached find it.
Step 3: run and watch the output & all the best...
This post is inspired from prabhu tutorial from compiletimeerror site.
Step 1:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main3"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="mycompany.com.recyclerviewdemo.asyntask_game_demo.Main3Activity">
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="textPersonName"
android:ems="10"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="20dp"
android:id="@+id/score"
android:hint="Enter your score" />
<Button
android:text="Earn Score"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/score"
android:layout_centerHorizontal="true"
android:layout_marginTop="30dp"
android:id="@+id/earn_score_bt"
android:onClick="earnScore" />
<ProgressBar
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:id="@+id/progressBar" />
</RelativeLayout>
Step 2 :
public class Main3Activity extends AppCompatActivity {
private EditText etScore;
private ProgressBar progressBar;
private int scoreIs;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main3);
initViews();
}
private void initViews() {
etScore = (EditText) findViewById(R.id.score);
progressBar = (ProgressBar) findViewById(R.id.progressBar);
}
public void earnScore(View view) {
AsynTaskRunner runner = new AsynTaskRunner();
scoreIs = Integer.parseInt(etScore.getText().toString());
runner.execute(String.valueOf(scoreIs));
}
public class AsynTaskRunner extends AsyncTask<String,String,String>{
int progressing = 5;
@Override
protected String doInBackground(String... params) {
publishProgress(String.valueOf(progressing));
try {
for(int i=0;i<Integer.valueOf(params[0]);i++){
Thread.sleep(100);
publishProgress(String.valueOf(i));
progressing = i ;
}
} catch (InterruptedException e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
Toast.makeText(Main3Activity.this, "Progress is :: "+progressBar.getProgress(), Toast.LENGTH_SHORT).show();
}
@Override
protected void onProgressUpdate(String... values) {
super.onProgressUpdate(values);
progressBar.setProgress(Integer.parseInt(values[0]));
}
}
}
Output: