2016-11-15 27 views
0

我試圖讓一個應用程序,以默認或用戶預定消息和電話號碼發送短信我會把我在這裏的代碼我得到錯誤的選擇微調值

private static final int MY_PERMISSIONS_REQUEST_SEND_SMS = 0; 
String phoneNo, message; 
List<String> pn, txt; 
Spinner sp1, sp2; 
Button b, b1, b2, b3, b4; 
EditText et, et1; 

ArrayAdapter<String> adp1, adp2; 

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

    setupSpinners(); 

    b = (Button) findViewById(R.id.button); 
    b1 = (Button) findViewById(R.id.button1); 
    b2 = (Button) findViewById(R.id.button2); 
    b3 = (Button) findViewById(R.id.button3); 
    b4 = (Button) findViewById(R.id.button4); 
    et = (EditText) findViewById(R.id.editText); 
    et1 = (EditText) findViewById(R.id.editText1); 

    b.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      adp1.add(et.getText().toString()); 
      et.setText(null); 
     } 

    }); 

    b2.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      adp2.add(et1.getText().toString()); 
      et1.setText(null); 
     } 

    }); 
} 

public void setupSpinners() { 

    sp1 = (Spinner) findViewById(R.id.spinner); 
    sp2 = (Spinner) findViewById(R.id.spinner1); 
    pn = new ArrayList<String>(); 
    txt = new ArrayList<String>(); 
    txt.add("Sorry Boss I'cant go today i'm sick"); 
    pn.add("123456789"); 

    adp1 = new ArrayAdapter<String>(this, 
      android.R.layout.simple_dropdown_item_1line, pn); 
    adp2 = new ArrayAdapter<String>(this, 
      android.R.layout.simple_dropdown_item_1line, txt); 

    sp1.setAdapter(adp1); 
    sp1.setSelection((pn.size() - 1)); 
    sp2.setAdapter(adp2); 
    sp2.setSelection((txt.size() - 1)); 

    sp1.setOnItemSelectedListener(new OnItemSelectedListener() { 

     @Override 
     public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) { 
      sp1.setSelection(arg2); 
     } 

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


    }); 
    sp2.setOnItemSelectedListener(new OnItemSelectedListener() { 

     @Override 
     public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) { 
      sp2.setSelection(arg2); 
     } 

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

      b4.setOnClickListener(new View.OnClickListener() { 
       public void onClick(View view) { 
        sendSMSMessage(); 
       } 

       protected void sendSMSMessage() { 
        phoneNo = sp1.getSelectedItem().toString(); 
        message = sp2.getSelectedItem().toString(); 

        if (ContextCompat.checkSelfPermission(this, 
          Manifest.permission.SEND_SMS) 
          != PackageManager.PERMISSION_GRANTED) { 
         if (ActivityCompat.shouldShowRequestPermissionRationale(this, 
           Manifest.permission.SEND_SMS)) { 
         } else { 
          ActivityCompat.requestPermissions(this, 
            new String[]{Manifest.permission.SEND_SMS}, 
            MY_PERMISSIONS_REQUEST_SEND_SMS); 
         } 
        } 
       } 

       @Override 
       public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) { 
        switch (requestCode) { 
         case MY_PERMISSIONS_REQUEST_SEND_SMS: { 
          if (grantResults.length > 0 
            && grantResults[0] == PackageManager.PERMISSION_GRANTED) { 
           SmsManager smsManager = SmsManager.getDefault(); 
           smsManager.sendTextMessage(phoneNo, null, message, null, null); 
           Toast.makeText(getApplicationContext(), "SMS sent.", 
             Toast.LENGTH_LONG).show(); 
          } else { 
           Toast.makeText(getApplicationContext(), 
             "SMS faild, please try again.", Toast.LENGTH_LONG).show(); 
           return; 
          } 
         } 
        } 

       } 
      }); 
     } 
    }); 
} 

的部分地方提供錯誤是(這一點,

if (ContextCompat.checkSelfPermission(this, 
Manifest.permission.SEND_SMS) 
!= PackageManager.PERMISSION_GRANTED) { 
if (ActivityCompat.shouldShowRequestPermissionRationale(this, 
Manifest.permission.SEND_SMS)) { 
} else { 
ActivityCompat.requestPermissions(this, 
new String[]{Manifest.permission.SEND_SMS}, 
MY_PERMISSIONS_REQUEST_SEND_SMS); 

我需要幫助,知道如何選擇微調選擇送價值低谷文本。

+1

的可能的複製[如何獲得微調值?(http://stackoverflow.com/questions/1947933/how-to-get-spinner-value) –

回答

1

這是一行代碼,用於在微調器中獲取選定的值。

String text = mySpinner.getSelectedItem().toString(); 

在你的代碼

protected void sendSMSMessage() { 
        phoneNo = sp1.getSelectedItem().toString(); 
        message = sp2.getSelectedItem().toString(); 
+0

現在我在 if(ContextCompat.checkSelfPermission(this, Manifest。許可.END_SMS) != PackageManager.PERMISSION_GRANTED){ 如果(ActivityCompat.shouldShowRequestPermissionRationale(此, (這一點,是差錯部分 在建立的gradle它說 錯誤:不兼容的類型:<匿名OnClickListener>不能轉換到活動 錯誤:不兼容的類型:<匿名OnClickListener>不能轉換爲上下文 – Marroquino

+0

你可以發佈一個問題,以便我們可以清楚地理解.. ?? –

+0

您需要添加運行時權限。用適當的代碼 –

0

pntxt變量重新編號爲List s,在List s上沒有像getText()這樣的方法。

+0

我只是從這裏開始對不起,如果我不知道一些基本知識 – Marroquino

+0

沒問題,我只是說:-) – ktamas