2016-11-15 3 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

Возможный дубликат [Как получить значение Spinner?] (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

теперь я получаю сообщение об ошибке в если (ContextCompat.checkSelfPermission (это, манифеста. разрешение.SEND_SMS) ! = PackageManager.PERMISSION_GRANTED) { если (ActivityCompat.shouldShowRequestPermissionRationale (это, (это, является частью ошибки В Gradle построить это говорит ошибки: несовместимые типы: <анонимным OnClickListener> не могут быть преобразованы в операцию ошибка: несовместимые типы: < анонимный OnClickListener> не может быть преобразован в Context – Marroquino

+0

, можете ли вы задать вопрос, чтобы мы могли четко понять .. ?? –

+0

Вам нужно добавить разрешение времени выполнения. с правильным кодом –

0

pn и txt переменные re List s, такого метода нет, как getText() на List s.

+0

Я только начинается здесь извините, если я не знаю, что некоторые основы – Marroquino

+0

нет проблем, я просто говорю :-) – ktamas