Ich benutze benutzerdefinierte Adapter, um Kontakte in Listview anzuzeigen, und ich erstelle onClick Funktion, die benutzerdefinierte Dialogfeld öffnen, wenn ein Element klicken. Danach möchte ich die Kontaktnummer aus dem Dialogfeld bekommen, aber wenn ich versuche, ein Popup-Fenster zu erhalten.Holen Sie sich Wert von benutzerdefinierten Dialog in Android
IllegalStateException: Could not execute method for android:onClick
benutzerdefinierten Dialog von Custom Adapter
// Other code
// This code is working fine problem is in activity class
public void onClick(View v) {
Toast.makeText(context, "Item click", Toast.LENGTH_SHORT).show();
String phoneNumber = phone.getText().toString();
String userName = name.getText().toString();
final Dialog dialog = new Dialog(context);
dialog.setContentView(R.layout.custom_dialog);
dialog.setTitle(userName);
EditText etxtContactNumber = (EditText) dialog.findViewById(R.id.etxtContactNumber);
etxtContactNumber.setText(phoneNumber);
dialog.show();
}
// reset of the code
Dialogfeld-
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textPersonName"
android:text="Name"
android:ems="10"
android:id="@+id/etxtContactNumber" />
<Button
android:text="Send SMS"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/btnSendMessage"
android:onClick="sendMessage" />
<Button
android:text="Phone Call"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/btnPhoneCall"
android:onClick="phoneCall" />
Hauptaktivität
protected void sendMessage(View view){
Toast.makeText(this, "Send Message", Toast.LENGTH_SHORT).show();
EditText etxtContactNumber = (EditText) view.findViewById(R.id.etxtContactNumber);
String phoneNumber = etxtContactNumber.getText().toString();
String uri= "smsto:"+phoneNumber;
Intent intent = new Intent(Intent.ACTION_SENDTO, Uri.parse(uri));
startActivity(intent);
}
Ich kenne den Grund des Fehlers etxtContactNumber
ist nicht in dieser Ansicht. Dies ist auch nicht in der Haupttätigkeitsansicht, wo es ist, wie ich es bekommen kann.
Individuelle Adapter und MainActivity beide sind zwei verschiedene Dateien
verwenden 'Pub lic void sendMessage' –
'public' funktioniert nicht –