Android 选择微调器项时出现空指针异常

Android 选择微调器项时出现空指针异常,android,spinner,android-alertdialog,Android,Spinner,Android Alertdialog,在我的应用程序中,我获取收到的消息的详细信息,并使用各种格式来放置这些详细信息,然后将新消息发送到另一个号码。要选择正文格式,我在选项菜单中提供了一个带有3种格式的下拉微调器。要获取的详细信息包括发件人的编号和消息日期。但我面临的问题是,当我打开对话框选择一种正文格式时。在微调器中单击主体格式时,应用程序崩溃,显示java.NullPointerException。请检查我的代码并提供有用的编辑(如果有),谢谢 case R.id.action_settings: fi

在我的应用程序中,我获取收到的消息的详细信息,并使用各种格式来放置这些详细信息,然后将新消息发送到另一个号码。要选择正文格式,我在选项菜单中提供了一个带有3种格式的下拉微调器。要获取的详细信息包括发件人的编号和消息日期。但我面临的问题是,当我打开对话框选择一种正文格式时。在微调器中单击主体格式时,应用程序崩溃,显示
java.NullPointerException
。请检查我的代码并提供有用的编辑(如果有),谢谢

case R.id.action_settings:

            final AlertDialog.Builder rdialog = new AlertDialog.Builder(MainActivity.this);
            rdialog.setTitle("Select Message Format")
            LayoutInflater inflater = LayoutInflater.from(getApplicationContext());
            alertView = inflater.inflate(R.layout.rptsetting,null);

            final Spinner fSpinner = (Spinner)alertView.findViewById(R.id.fSpinner);
            final String format[] ={"- Select -","Format 1", "Format 2", "Format 3"};
            ArrayAdapter<String> adp = new ArrayAdapter<String> (MainActivity.this,android.R.layout.simple_spinner_dropdown_item,providers);
            fSpinner.setAdapter(adp);
            fSpinner.setOnItemSelectedListener(new OnItemSelectedListener() {

                @Override
                public void onItemSelected(AdapterView<?> parentView, View selectedItemView,
                        int position, long id) {


                    if(fSpinner.getSelectedItem().toString().equals(format[0])){
                        body = null;
                    }
                    else if(fSpinner.getSelectedItem().toString().equals(format[1])){
                        body = "Sender's No "+sendaddress+"; Date and Time "+vtime.get(i)+"; Some Text"+reltxt.getText().toString();
                    }

                    else if(fSpinner.getSelectedItem().toString().equals(format[2])){
                        body = "Sender's No"+sendaddress+", Date and Time "+time.get(i)+", Some Text "+reltxt.getText().toString();
                    }

                    else if(fSpinner.getSelectedItem().toString().equals(format[3])){
                        body = "Sender's No "+sendaddress+", Date and Time "+time.get(i)+", Some Text "+reltxt.getText().toString();
                    }   

                }
                @Override
                public void onNothingSelected(AdapterView<?> aparent) {
                }


            });

            final Spinner phSpinner = (Spinner)alertView.findViewById(R.id.phSpinner);
            final String pnumber[] ={"- Select -","123456", "7889003"};
            ArrayAdapter<String> cno = new ArrayAdapter<String> (MainActivity.this,android.R.layout.simple_spinner_dropdown_item,compno);
            phSpinner.setAdapter(cno);

            phSpinner.setOnItemSelectedListener(new OnItemSelectedListener() {

                @Override
                public void onItemSelected(AdapterView<?> phParent, View item,
                        int post, long arg3) {


                    if(phSpinner.getSelectedItem().toString().equals(pnumber[0])){
                        phoneNo = null;
                    }
                    else if(phSpinner.getSelectedItem().toString().equals(pnumber[1])){
                        phoneNo="123456";
                    }
                    else if(phSpinner.getSelectedItem().toString().equals(pnumber[2])){
                        phoneNo=7889003;
                    }
                }

                @Override
                public void onNothingSelected(AdapterView<?> phParent) {
                }
            });

            rdialog.setView(alertView);
            rdialog.setNeutralButton("SUBMIT", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    dialog.dismiss();   
                    }
                });

            AlertDialog rdialog1 = rdialog.create();
            rdialog1.show();

private void sendSms()
 {   
         if(list.size()>0){
             for(int i=0;i<list.size();i++)
             {
                 if(list.get(i).isSelected())
                 {
                     if(sendaddress.equals(""))
                         sendaddress =list.get(i).getAddress();
                     else
                         sendaddress =list.get(i).getAddress();
                     try 
                     {
                        String SENT      = "SMS_SENT";
                         PendingIntent sentPI = PendingIntent.getBroadcast(this, 0, new Intent(SENT), 0);
                         registerReceiver(new BroadcastReceiver() 
                         {
                             @Override
                             public void onReceive(Context arg0, Intent arg1) 
                             {
                                 int resultCode = getResultCode();
                                 switch (resultCode) 
                                 {
                                    case Activity.RESULT_OK:                      
                                        Toast.makeText(getBaseContext(), "SMS Sent!!!!!", Toast.LENGTH_SHORT).show();
                                    break;

                                    case SmsManager.RESULT_ERROR_GENERIC_FAILURE:  
                                        Toast.makeText(getBaseContext(), "Generic failure",Toast.LENGTH_SHORT).show();
                                    break;

                                    case SmsManager.RESULT_ERROR_NO_SERVICE:       
                                        Toast.makeText(getBaseContext(), "No service",Toast.LENGTH_SHORT).show();
                                    break;

                                    case SmsManager.RESULT_ERROR_NULL_PDU:         
                                        Toast.makeText(getBaseContext(), "Null PDU",Toast.LENGTH_SHORT).show();
                                    break;

                                    case SmsManager.RESULT_ERROR_RADIO_OFF:        
                                        Toast.makeText(getBaseContext(), "Radio off",Toast.LENGTH_SHORT).show();
                                    break;
                                 }
                             }
                         }, new IntentFilter(SENT));

                         SmsManager smsMgr = SmsManager.getDefault();
                         smsMgr.sendTextMessage(numformat, null, body, sentPI, null);
                         delete();
                     }
                     catch (Exception e) 
                     {
                         Toast.makeText(this, e.getMessage()+"!\n"+"SMS failed, please try again", Toast.LENGTH_SHORT).show();
                         e.printStackTrace();
                     }
                 }
             }
         }
     else
     {
         Toast.makeText(this, SimState+ " " + "Cannot send SMS", Toast.LENGTH_SHORT).show();
     } 
 }
案例R.id.action\u设置:
final AlertDialog.Builder rdialog=新建AlertDialog.Builder(MainActivity.this);
rdialog.setTitle(“选择消息格式”)
LayoutFlater充气器=LayoutFlater.from(getApplicationContext());
alertView=充气机。充气(R.layout.rptsetting,null);
最终微调器fSpinner=(微调器)alertView.findviewbyd(R.id.fSpinner);
最终字符串格式[]={“-Select-”,“格式1”,“格式2”,“格式3”};
ArrayAdapter adp=新的ArrayAdapter(MainActivity.this,android.R.layout.simple\u微调器\u下拉菜单\u项,提供者);
fSpinner.setAdapter(adp);
setOnItemSelectedListener(新的OnItemSelectedListener()){
@凌驾
已选择公共视图(AdapterView父视图、View selectedItemView、,
内部位置,长id){
if(fSpinner.getSelectedItem().toString().equals(格式[0])){
body=null;
}
else if(fSpinner.getSelectedItem().toString().equals(格式[1])){
body=“发件人编号”+senddress+“日期和时间”+vtime.get(i)+“一些文本”+reltxt.getText().toString();
}
else if(fSpinner.getSelectedItem().toString().equals(格式[2])){
body=“发件人编号”+senddress+”,日期和时间“+Time.get(i)+”,一些文本“+reltxt.getText().toString();
}
else if(fSpinner.getSelectedItem().toString().equals(格式[3])){
body=“发件人编号”+senddress+”,日期和时间“+Time.get(i)+”,一些文本“+reltxt.getText().toString();
}   
}
@凌驾
未选择公共无效(AdapterView公寓){
}
});
最终微调器phSpinner=(微调器)alertView.findviewbyd(R.id.phSpinner);
最终字符串pnumber[]={“-Select-”、“123456”、“7889003”};
ArrayAdapter cno=新的ArrayAdapter(MainActivity.this,android.R.layout.simple\u spinner\u dropdown\u item,compno);
phSpinner.setAdapter(cno);
setOnItemSelectedListener(新的OnItemSelectedListener(){
@凌驾
已选择公共项(AdapterView phParent、视图项、,
int post,长arg3){
if(phSpinner.getSelectedItem().toString().equals(pnumber[0])){
phoneNo=null;
}
else if(phSpinner.getSelectedItem().toString().equals(pnumber[1])){
phoneNo=“123456”;
}
else if(phSpinner.getSelectedItem().toString().equals(pnumber[2])){
电话号码=7889003;
}
}
@凌驾
未选择公共无效(AdapterView phParent){
}
});
rdialog.setView(警报视图);
rdialog.setNeutralButton(“提交”,新的DialogInterface.OnClickListener(){
@凌驾
public void onClick(DialogInterface dialog,int which){
dialog.dismise();
}
});
AlertDialog rdialog1=rdialog.create();
rdialog1.show();
私有void sendSms()
{   
如果(list.size()>0){

对于(inti=0;i请尝试在
onimselected

String selectedItem = aparent.getItemAtPosition(pos).toString();
而不是

String selectedItem = aparent.getSelectedItem().toString();
  • 希望对你有帮助