-1

MainActivity Code

    import android.support.v4.app.Fragment;
    import android.app.Activity;
    import android.os.Bundle;
    import android.os.Handler;
    import android.os.Message;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    import android.widget.ProgressBar;
    import android.widget.Toast;

    public class MainActivity extends Activity {

        private Button Button1, Button2;
        ProgressBar progressBar;

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);

            Button1 = (Button) findViewById(R.id.button1);
            Button2 = (Button) findViewById(R.id.button2);
            progressBar = (ProgressBar) findViewById(R.id.progressBar);

            Button2.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View v) {
                    Toast.makeText(MainActivity.this, "I am working",
                            Toast.LENGTH_SHORT).show();
                }
            });
        }
        public void buttonClick(View v) {
            Handler handler = new Handler() {
                @Override
                public void handleMessage(Message msg) {        
                    progressBar.setProgress(msg.arg1);
                }
            };

        }
    }

AnotherClass code

import android.os.Handler;
import android.os.Message;

public class AnotherExample {

Handler mhandler = new Handler();

public void testMethod() {
    for (int i = 0; i <= 50; i++) {
        Message obj1 = Message.obtain();        
        obj1.arg1 = i;
        mhandler.sendMessage(obj1);
    }
}

}

activity_main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    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=".ThreadExampleActivity" >

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:layout_marginTop="48dp"
        android:text="1st button" 
        android:onClick="buttonClick"/>

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/button1"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="37dp"
        android:text="2nd button" />

    <ProgressBar
        android:id="@+id/progressBar"
        style="?android:attr/progressBarStyleHorizontal"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/button1"
        android:layout_alignParentRight="true"
        android:layout_alignParentLeft="true"
        android:max="50"/> 


</RelativeLayout>    

I have two buttons on my app.I want to turn on the progress bar clicking button1 but when I click on button1 it does not show any progress. I have tried with android:indeterminate="true" in xml but that time progress bar is continuously running without clicking button1.

But i want to click button1 and it will show me the running progressbar. Experts i need your help and suggestion how can i do this.

user3732316
  • 63
  • 1
  • 7

1 Answers1

1

Change your code,

public void buttonClick(View v) {
    Message message = new Message();
    message.arg1=10;
    message.what = 0;
    handler.sendMessage(message);

    }
Handler handler = new Handler() {
      @Override
      public void handleMessage(Message msg) {        
           progressBar.setProgress(msg.arg1);
      }
};
Divyang Metaliya
  • 1,908
  • 1
  • 12
  • 14
  • where the crash please show logcat output, its work in Nexus 4 – Divyang Metaliya Jul 18 '14 at 09:01
  • Finally i have solved this problem.in buttonClick() i am using handler object mhandler to pass message but atfirst i didnot create any handler object ,i just defined Handler mhandler.But if i write handler.sendMesage then it'll work bcoz after that i am creating object from Handler.Your solution is ok but i have problem of naming. – user3732316 Jul 18 '14 at 09:23