SMSアプリを作成し、これまでのところ順調に進んでいますが、昨夜、新しいアクティビティを実装しようとした後、問題が発生しました。
レイアウトの[送信]ボタンをクリックすると、SMSが送信され、送信済みSMSを通知するトーストがトリガーされます。これは、XMLにonClick属性を追加して、新しいアクティビティを開始する意図が生じるまで、完全に機能していました...これが発生し始めたのは次のとおりです。
作成した新しいアクティビティを起動する代わりに、電話に含まれているデフォルトの「メッセージング」アプリの「新しいメッセージ」レイアウト/アクティビティに移動しました。私はこれを理解していなかったので、(何度も何かを見逃していない限り)それが機能していたときから変更したすべてのものを取り除いた。
まだ:このボタンをクリックすると、まだその新しいメッセージアクティビティに送られます...
誰かが私のコードのどこでそのアクティビティを開始するようにアプリケーションに指示しているのか教えてもらえますか?ありがとうございました!
TextActivity.java
import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.provider.ContactsContract.Contacts;
import android.provider.ContactsContract.CommonDataKinds.Phone;
import android.telephony.SmsManager;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
public class TextActivity extends Activity {
Button buttonSend;
EditText textPhoneNo;
EditText textSMS;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.text_field);
buttonSend = (Button) findViewById(R.id.bSendText);
textPhoneNo = (EditText) findViewById(R.id.etPhoneNumber);
textSMS = (EditText) findViewById(R.id.etTypeMessage);
buttonSend.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
String phoneNo = textPhoneNo.getText().toString();
String sms = textSMS.getText().toString();
Intent sendIntent = new Intent(Intent.ACTION_VIEW);
sendIntent.putExtra("SMS Body", sms);
sendIntent.setType("vnd.android-dir/mms-sms");
startActivity(sendIntent);
try {
SmsManager smsManager = SmsManager.getDefault();
smsManager.sendTextMessage(phoneNo, null, sms, null, null);
Toast.makeText(getApplicationContext(), "SMS Sent!",
Toast.LENGTH_LONG).show();
} catch (Exception e) {
Toast.makeText(getApplicationContext(),
"SMS failed, please try again later!",
Toast.LENGTH_LONG).show();
e.printStackTrace();
}
}
});
}
// STARTING The Contact Selection Process
private static final int CONTACT_PICKER_RESULT = 1001;
// References the Select Contact Button with onClick="clickHandle"
public void clickHandle(View view) {
Intent contactPickerIntent = new Intent(Intent.ACTION_PICK,
Contacts.CONTENT_URI);
startActivityForResult(contactPickerIntent, CONTACT_PICKER_RESULT);
}
// Interpreting the results from the Contact_picker
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK) {
switch (requestCode) {
case CONTACT_PICKER_RESULT:
Cursor cursor = null;
String phone = "";
String name = "";
try {
Uri result = data.getData();
// get the contact id from the Uri
String id = result.getLastPathSegment();
// query for everything phone
cursor = getContentResolver().query(Phone.CONTENT_URI,
null, Phone.CONTACT_ID + "=?", new String[] { id },
null);
int phoneIdx = cursor.getColumnIndex(Phone.DATA);
int nameIdx = cursor.getColumnIndex(Phone.DISPLAY_NAME);
// let's just get the first phone
if (cursor.moveToFirst()) {
phone = cursor.getString(phoneIdx);
name = cursor.getString(nameIdx);
} else {
}
} catch (Exception e) {
} finally {
if (cursor != null) {
cursor.close();
}
EditText phoneEntry = (EditText) findViewById(R.id.etPhoneNumber);
phoneEntry.setText(phone);
TextView nameEntry = (TextView) findViewById(R.id.tvContactSelected);
nameEntry.setText(name);
if (phone.length() == 0) {
Toast.makeText(this, "No phone found for contact.",
Toast.LENGTH_LONG).show();
}
}
break;
}
} else {
}
}
}
私のXML、text_field.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:background="@color/burntorange" >
<Button
android:id="@+id/bSelectContact"
android:layout_width="50dp"
android:layout_height="45dp"
android:layout_gravity="center"
android:layout_margin="4dp"
android:background="@color/gray"
android:inputType="phone"
android:onClick="clickHandle"
android:text="+"
android:textColor="@color/white"
android:textSize="35dp" />
<TextView
android:id="@+id/tvContactSelected"
android:layout_width="290dp"
android:layout_height="45dp"
android:layout_gravity="top"
android:layout_margin="4dp"
android:background="@color/gray"
android:gravity="center"
android:padding="10dp"
android:text="No Contact Selected"
android:textSize="20dp" />
</LinearLayout>
<EditText
android:id="@+id/etPhoneNumber"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="2dp"
android:gravity="center"
android:hint="Person's Phone Number"
android:padding="10dp" >
</EditText>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<LinearLayout
android:id="@+id/linLayout"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_margin="1dp"
android:background="@color/burntorange"
android:descendantFocusability="beforeDescendants"
android:focusable="true"
android:focusableInTouchMode="true"
android:gravity="center"
android:orientation="horizontal"
android:padding="1dp" >
<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/svEnterMessage"
android:layout_width="269dp"
android:layout_height="wrap_content"
android:paddingBottom="4dp" >
<EditText
android:id="@+id/etTypeMessage"
android:layout_width="260dp"
android:layout_height="wrap_content"
android:layout_marginBottom="2dp"
android:layout_marginRight="4dp"
android:layout_marginTop="4dp"
android:background="@drawable/outline"
android:hint="Type Message Here"
android:minHeight="35dp"
android:padding="6dp"
android:textColor="@color/white"
android:inputType="textMultiLine" >"
</EditText>
</ScrollView>
<Button
android:id="@+id/bSendText"
android:layout_width="75dp"
android:layout_height="36dp"
android:layout_marginBottom="2dp"
android:layout_marginLeft="2dp"
android:background="@color/gray"
android:text="Send"
android:layout_gravity="bottom"
android:textColor="@color/white" />
</LinearLayout>
</RelativeLayout>
</LinearLayout>