Thanks it works!!!

On 5 Ago, 18:45, "Balwinder Kaur (T-Mobile)" <balwinder.k...@t-
mobile.com> wrote:
> If you user the Looper and another handler to your class F, it would
> work.
>
> Code marked with //NEW
>
> class F extends Thread{
>
>     Context context;
>     TextView statusField;
>     Handler handler;
>     String voto="";
>
>     F (Context context,TextView statusField,Handler handler)    {
>         this.context=context;
>         this.statusField=statusField;
>         this.handler=handler;
>     }
>     public Handler mHandler;
>
>     public void run()
>     {
>         Looper.prepare(); //NEW
>
>         final CharSequence[] items = {"Ottimo", "Buono",
>                 "Sufficiente","Insufficiente"};
>
>              handler.post(new Runnable(){
>
>                         public void run(){
>                             AlertDialog.Builder builder = new
> AlertDialog.Builder(context);
>
>                             builder.setTitle("Pick a color");
>                             builder.setSingleChoiceItems(items, -1,
> new DialogInterface.OnClickListener() {
>                                 public void onClick(DialogInterface
> dialog, int item) {
>                                     Toast.makeText
> (context.getApplicationContext(), items [item],
> Toast.LENGTH_SHORT).show();
>
> dialog.cancel();
>                                     statusField.setText(items[item]);
>                                     Message m = new Message(); //NEW
>                                     m.what = 1; //NEW, any id is fine,
> a const would be better :)
>                                     m.arg1 = item; //NEW
>                                     mHandler.sendMessage(m); //NEW
>
>                                 }
>                             });
>                             AlertDialog alert = builder.create();
>                             alert.requestWindowFeature
> (Window.FEATURE_NO_TITLE);
>                             alert.getWindow().setFlags
> (WindowManager.LayoutParams.FLAG_FULLSCREEN,
>
> WindowManager.LayoutParams.FLAG_FULLSCREEN);
>                             alert.show();
>
>                     }});
>
>                     mHandler = new Handler() { //NEW
>                         public void handleMessage(Message msg) {
>                             switch (msg.what) {
>                             case 1:
>                                 voto = items[msg.arg1].toString();
>                                 Log.d("Class F" , voto);
>                                 break;
>                             default:
>                                 super.handleMessage(msg);
>                         }
>                         }
>                     };
>
>                     Looper.loop(); // NEW
>
> }
>
> You can read more 
> athttp://developer.android.com/reference/android/os/Looper.html
>
> Balwinder Kaur
> Open Source Development Center
> ·T· · ·Mobile· stick together
>
> The views, opinions and statements in this email are those of the
> author solely in their individual capacity, and do not necessarily
> represent those of T-Mobile USA, Inc.
>
> On Aug 4, 4:15 pm,Lorenz<[email protected]> wrote:
>
>
>
> > Thanks Kaur,it works..
> > but if I want to do some action in the thread after the user has
> > choose ???Namely there is a way to do something like this..:(I've used
> > NEW )
>
> > public void run()
>
> > >     {
>
> > >                     final CharSequence[] items = {"Ottimo", "Buono",
> > > "Sufficiente","Insufficiente"};
>
> > >                     String voto="";
>
> > >                    handler.post(new Runnable(){public void run(){
> > >                             AlertDialog.Builder builder = new
> > > AlertDialog.Builder(context);
>
> > >                             builder.setTitle("Pick a color");
> > >                             builder.setSingleChoiceItems(items, -1,
> > > new
> > > DialogInterface.OnClickListener() {
> > >                                 public void onClick(DialogInterface
> > > dialog, int item) {
> > >                                     Toast.makeText
> > > (context.getApplicationContext(), items
> > > [item], Toast.LENGTH_SHORT).show();
> > >                                     //======== START =======
> > >                                     dialog.cancel();
> > >                                     statusField.setText(items[item]);
> > >                                     //========= END =========
>
> >                                  voto=items[item];  <----------NEW
>
> > >                                 }
> > >                             });
> > >                             AlertDialog alert = builder.create();
> > >                             alert.show();
>
> > >                     }});
>
> > > }
> > > }
> > >      if(voto=="ottimo") do something..  <--------NEW
>
> > It seems that the code doesn't stop, so the string voto could be
> > empty...
> > I need to use in the thread the choiche of the the user..
> > If you have some idea..
> > Thanks
>
> > On 4 Ago, 17:33, "Balwinder Kaur (T-Mobile)" <balwinder.k...@t-
>
> > mobile.com> wrote:
> > > If you change your code in a few places, it should work. (It worked
> > > for me :))
>
> > > I have demarked the code changes with
> > > //======== START====  and //======= END ====
>
> > > public void onCreate(Bundle savedInstanceState) {
> > >     super.onCreate(savedInstanceState);
> > >     setContentView(R.layout.main);
> > >    Handlerhandler=newHandler();
> > >     //====== START ====
> > >     // 1. I assume you have a TextView defined in  your layout.main
> > > file.
> > >     // 2. Make sure you have android:id set e.g. <TextView
> > > android:id="@+id/tview"
> > >     TextView statusField = (TextView) findViewById(R.id.tview);
> > >     //====== END ======
> > >     F thread=new F(this,statusField,handler);
> > >     thread.start();
>
> > > }
> > > }
>
> > > class F extends Thread{
>
> > >     Context context;
> > >     TextView statusField;
> > >    Handlerhandler;
> > >     String voto;
>
> > >     F(Context context,TextView statusField,Handlerhandler)
> > > {this.context=context;this.statusField=statusField;this.handler=handler;}
> > >     public void run()
> > >     {
>
> > >                     final CharSequence[] items = {"Ottimo", "Buono",
> > > "Sufficiente","Insufficiente"};
>
> > >                     String voto="";
>
> > >                    handler.post(new Runnable(){public void run(){
> > >                             AlertDialog.Builder builder = new
> > > AlertDialog.Builder(context);
>
> > >                             builder.setTitle("Pick a color");
> > >                             builder.setSingleChoiceItems(items, -1,
> > > new
> > > DialogInterface.OnClickListener() {
> > >                                 public void onClick(DialogInterface
> > > dialog, int item) {
> > >                                     Toast.makeText
> > > (context.getApplicationContext(), items
> > > [item], Toast.LENGTH_SHORT).show();
> > >                                     //======== START =======
> > >                                     dialog.cancel();
> > >                                     statusField.setText(items[item]);
> > >                                     //========= END =========
> > >                                 }
> > >                             });
> > >                             AlertDialog alert = builder.create();
> > >                             alert.show();
>
> > >                     }});
>
> > >                     //statusField.setText(voto); //REMOVE
>
> > > }
> > > }
>
> > > Hope this helps,
> > > Balwinder Kaur
> > > Open Source Development Center
> > > ·T· · ·Mobile· stick together
>
> > > The views, opinions and statements in this email are those of the
> > > author solely in their individual capacity, and do not necessarily
> > > represent those of T-Mobile USA, Inc.
>
> > > On Aug 4, 5:48 am,Lorenz<[email protected]> wrote:
>
> > > > Hi,
> > > > I have a problem, I want to create an Alert Builder in a thread
> > > > started by tha main activity.This Builder should be a multiple
> > > > choiche.
> > > > The code is:
>
> > > > public class C extends Activity {
>
> > > >         private PrintWriter savedpoint;
> > > >         private Context context = this;
> > > >         private TextView statusField;
>
> > > >     @Override
> > > >     public void onCreate(Bundle savedInstanceState) {
> > > >         super.onCreate(savedInstanceState);
> > > >         setContentView(R.layout.main);
> > > >        Handlerhandler=newHandler();
>
> > > >         F thread=new F(this,statusField,handler);
> > > >         thread.start();
>
> > > >     }
>
> > > > }
>
> > > > class F extends Thread{
>
> > > >         Context context;
> > > >         TextView statusField;
> > > >        Handlerhandler;
> > > >         String voto;
>
> > > >         F(Context context,TextView statusField,Handlerhandler)
> > > > {this.context=context;this.statusField=statusField;this.handler=handler;}
> > > >         public void run()
> > > >         {
>
> > > >                         final CharSequence[] items = {"Ottimo", "Buono",
> > > > "Sufficiente","Insufficiente"};
>
> > > >                         String voto="";
>
> > > >                        handler.post(new Runnable(){public void run(){
> > > >                                 AlertDialog.Builder builder = new 
> > > > AlertDialog.Builder(context);
> > > >                                 builder.setTitle("Pick a color");
> > > >                        
>
> ...
>
> leggi tutto
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Android Beginners" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-beginners?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to