implicit intents
의 작동 방식을 이해하기 위해 edittext
과 하나의 button
으로 레이아웃을 만들고 싶습니다. 첫 번째 edittext
에서 사용자는 이메일 주소를 입력해야하고 두 번째 textview
에는 수신자의 이메일 주소를 입력해야하며 button
을 클릭하면 Action
SEND
에 등록 된 모든 구성 요소가 내 앱을 포함하여 표시됩니다.암시 적 의도로 인해 앱이 손상됩니다.
UPDATED_JavaCode
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
String from = et_from.getText().toString();
String to = et_to.getText().toString();
String data = from + to;
Intent i = new Intent();
i.setAction(android.content.Intent.ACTION_SEND);
i.setType("text/plain");
i.putExtra(android.content.Intent.EXTRA_TEXT, from + to);
//i.setData(Uri.parse(data.toString()));
startActivity(i);
}
});
UPDATED_Manifest :
<uses-sdk
android:minSdkVersion="19"
android:targetSdkVersion="19" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".EmailActivity"
android:label="@string/title_activity_intents_test01" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="CustomActivity"> </activity>
<intent-filter>
<action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT"/>
<data android:scheme="text/plain"/>
</intent-filter>
</application>
로그 캣 :
아래내 시도하고 logcat
입니다
11-15 14:47:19.714: E/AndroidRuntime(18239): FATAL EXCEPTION: main
11-15 14:47:19.714: E/AndroidRuntime(18239): Process: com.example.emailactivity, PID:
18239
11-15 14:47:19.714: E/AndroidRuntime(18239): android.content.ActivityNotFoundException:
No Activity found to handle Intent { act=android.intent.action.SEND dat=yt (has extras)
}
11-15 14:47:19.714: E/AndroidRuntime(18239): at
android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1672)
11-15 14:47:19.714: E/AndroidRuntime(18239): at
android.app.Instrumentation.execStartActivity(Instrumentation.java:1442)
11-15 14:47:19.714: E/AndroidRuntime(18239): at
com.example.emailactivity.EmailActivity$1.onClick(EmailActivity.java:46)
답을 고맙습니다. setData()를 제거했습니다. 이제는 두 가지가 있습니다 : 1 - i는 edittext (와 t)에 주어진 두 값을 전달해야합니다. i.putExtra (android.content.Intent.EXTRA_TEXT, from)와'i.putExtra android.content.Intent.EXTRA_TEXT, to); 이거? 2 - 등록 된 구성 요소 중에 내 앱이 나열되어 있지 않습니다. – user2121
@ user2121 : * 값 하나를 'EXTRA_TEXT'에 채울 수 있습니다. 또한'Intent'에'setType()'을 추가하여'EXTRA_TEXT'에있는 내용의 MIME 유형을 나타낼 필요가 있습니다. 그런 다음''에 대응하는''요소가 있어야만 해당 MIME 유형과 일치해야합니다. –
CommonsWare
친절하게도 업데이트 된 코드 및 매니페스트를 참조하십시오. 앱이 아직 등록 된 구성 요소로 표시되지 않습니다. – user2121