Я использую пользовательский адаптер для отображения контактов в списке, и я создаю функцию onClick, которая открывает настраиваемый диалог при нажатии любого элемента. После этого я хочу получить номер контакта из диалогового окна, но когда я попытаюсь получить его всплывающее окно с ошибкой.Получить значение из пользовательского диалогового окна в Android
IllegalStateException: Could not execute method for android:onClick
Пользовательские Диалог От Настраиваемый адаптер
// 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
Пользовательские Dialog
<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" />
Основная деятельность
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);
}
Я знаю, причина ошибки etxtContactNumber
в этом виде. Это также не в основном представлении активности, а затем, где я могу его получить.
Пользовательские адаптер и MainActivity как два различных файла
использовать 'pub lic void sendMessage' –
'public' не работает –