2015-05-07 6 views
1

Я создаю андроид, используя фрагменты. Я создал фрагмент sms для отправки sms на определенный номер, но когда он работает хорошо, но когда я набираю сообщение, нажмите «Отправить», приложение выйдет из строя и закрывается. выручи меня.Отправка sms-приложения внутри фрагмента

public class SMS extends Fragment { 


    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
    } 

    @Override 
    public void onActivityCreated(Bundle savedInstanceState) { 
     super.onActivityCreated(savedInstanceState); 

    } 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
      Bundle savedInstanceState) { 

     // View v = inflater.inflate(R.layout.fragment, null); 
     View v = inflater.inflate(R.layout.sms, container, false); 
     return v; 

    } 


    public void sendsms(View v) 
    { 

     //refernce the edittext 
     EditText message=(EditText) v.findViewById(R.id.Messege); 
     //get the phone the number and the message 

     String number="0712345678"; 
     String msg=message.getText().toString(); 
     //use the sms manager to send message 
     SmsManager sm=SmsManager.getDefault(); 
     sm.sendTextMessage(number, null, msg, null, null); 
     Toast.makeText(getActivity(),"Messege sent",Toast.LENGTH_LONG).show(); 


    } 


} 

следующее расположение xml, которое я использовал.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:orientation="vertical" 
    android:background="@drawable/log" 
    android:layout_height="match_parent" 
    > 

    <TextView 
     android:id="@+id/textView1" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:text="Send your feedback" /> 

    <EditText 
     android:id="@+id/Messege" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentTop="true" 
     android:hint="Enter your messege" 
     android:layout_marginTop="15dp" 
     android:ems="10" > 

</EditText> 

    <Button 
     android:id="@+id/send" 
     android:onClick="sendsms" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:text="Send SMS" /> 

</LinearLayout> 

ответ

0

Метод onClick() запускается в потоке пользовательского интерфейса. Вы не хотите отправлять SMS-сообщение из потока пользовательского интерфейса. Попробуйте обернуть свой код sendSMS в AsyncTask или создать новый поток для запуска этого кода.

Смежные вопросы