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