Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/198.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android:从活动上下文外部调用startActivity()_Android_Textview_Android Alertdialog_Linkify - Fatal编程技术网

Android:从活动上下文外部调用startActivity()

Android:从活动上下文外部调用startActivity(),android,textview,android-alertdialog,linkify,Android,Textview,Android Alertdialog,Linkify,我的警报对话框中有一个文本视图,我正在文本中放置一个URL?当我使用以下代码时,它会给我一个错误: final TextView message = new TextView(context); final SpannableString s = new SpannableString(context.getText(R.string.SEND_SMS)); message.setText(s

我的警报对话框中有一个文本视图,我正在文本中放置一个URL?当我使用以下代码时,它会给我一个错误:

                final TextView message = new TextView(context); 
                final SpannableString s = new SpannableString(context.getText(R.string.SEND_SMS));   
                message.setText(s);
                message.setPadding(10, 0, 4, 0);
                message.setGravity(Gravity.AXIS_CLIP);
                message.setMovementMethod(LinkMovementMethod.getInstance());

                new AlertDialog.Builder(MyClass.this)   
                .setTitle("Message 1\nStep 1 of 4")   
                .setView(message)   
                .setPositiveButton(R.string.CONTINUE,new DialogInterface.OnClickListener() {   
                    public void onClick(DialogInterface dialog, int whichButton) {   

                        Log.e("@@","Inside OnClick");
                        //new CheckLoginStatus().execute();
                        sendSMS();
                        myProgressDialog=new ProgressDialog(MyClass.this);
                        myProgressDialog.setTitle("Message 2\nStep 2 of 4");
                        myProgressDialog.setMessage("Message\n" +
                                "Please wait... attempt "+(count));
                        myProgressDialog.setCancelable(false);
                        myProgressDialog.show();

                        Thread splashTread = new Thread() {
                            @Override
                            public void run() {
                                try {
                                    for(int i=0;i<3;i++)
                                    {
                                        if(!smsStatus || !smsSendStatus){
                                            Log.e("@@","Inside Run..");
                                            int waited = 0;
                                            while( (waited < 120000)) {
                                                sleep(100);
                                                waited += 100;
                                            }
                                            Log.e("after","120sec count="+count);
                                            if(!smsStatus)
                                                handler.sendEmptyMessage(0);
                                        }
                                    }
                                } catch (InterruptedException e) {
                                    e.printStackTrace();
                                }
                                finally
                                {
                                    Log.e("Logs", "Inside stop of thread");
                                    stop();
                                }
                            }
                        };
                        splashTread.start();
                    }   
                })
                .setNegativeButton(R.string.do_later,new DialogInterface.OnClickListener() {   
                    public void onClick(DialogInterface dialog, int whichButton) {   
                        finish();
                    }   
                })
                .setCancelable(false).show();
最终文本视图消息=新文本视图(上下文);
final SpannableString s=新的SpannableString(context.getText(R.string.SEND_SMS));
message.setText;
message.setPadding(10,0,4,0);
message.setGravity(Gravity.AXIS_CLIP);
message.setMovementMethod(LinkMovementMethod.getInstance());
新建AlertDialog.Builder(MyClass.this)
.setTitle(“消息1\n第1步,共4步”)
.setView(消息)
.setPositiveButton(R.string.CONTINUE,新建DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialog,int whichButton){
Log.e(“@@”,“内部OnClick”);
//新建CheckLoginStatus().execute();
sendSMS();
myProgressDialog=新建ProgressDialog(MyClass.this);
myProgressDialog.setTitle(“消息2\n第2步,共4步”);
myProgressDialog.setMessage(“消息\n”+
“请稍候…尝试”+(计数));
myProgressDialog.setCancelable(false);
myProgressDialog.show();
螺纹飞溅踏板=新螺纹(){
@凌驾
公开募捐{
试一试{

对于(int i=0;i如果处理程序位于
活动
类中,则在创建
文本视图
时将该类用作上下文,而不是getBaseContext()

这将使用
活动
上下文,使您的问题消失

 private Handler handler = new Handler() {
    public void handleMessage(Message msg) {
        count += 1;
        if(count<=3){
            try{
                Log.e("@@","Inside handler try count="+count);
                if(myProgressDialog.isShowing())
                    myProgressDialog.dismiss();
            }catch(Exception e){
                e.printStackTrace();
            }
            //new CheckLoginStatus().execute();
            sendSMS();
            if(!myProgressDialog.isShowing()){
                myProgressDialog=new ProgressDialog(MyClass.this);
                myProgressDialog.setTitle("My Message\nStep 2 of 4");
                myProgressDialog.setMessage("Me Message\n" +
                        "Please wait... attempt "+(count));
                myProgressDialog.setCancelable(false);
                myProgressDialog.show();
            }
        }else if(count == 4){
            try{
                Log.e("@@","Inside handler else "+count);
                if(myProgressDialog.isShowing())
                    myProgressDialog.dismiss();
            }catch(Exception e){
                e.printStackTrace();
            }
            count = 1;



            final TextView message = new TextView(getBaseContext()); 
            final SpannableString s = new SpannableString(getBaseContext().getText(R.string.SMS_NOT_RECEIVED));
            Linkify.addLinks(s, Linkify.WEB_URLS);
            message.setText(s);
            message.setPadding(10, 0, 4, 0);
            message.setGravity(Gravity.CLIP_HORIZONTAL);
            message.setMovementMethod(LinkMovementMethod.getInstance());  

            new AlertDialog.Builder(MyClass.this)   
            .setTitle("My Message\nError")   
            .setView(message)
            .setPositiveButton(R.string.OK_TEXT,new DialogInterface.OnClickListener() {   
                public void onClick(DialogInterface dialog, int whichButton) {   
                    finish();
                }   
            }).setCancelable(false).show();
        }
    }
};