Я сделал очень простое тестовое приложение с одним действием и одним макетом. onClick
не запускается при первом нажатии, как и должно быть.
Деятельность:
package com.example.mytest;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final EditText ed1 = (EditText) findViewById(R.id.editText1);
ed1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Toast.makeText(getApplicationContext(), "1", Toast.LENGTH_LONG)
.show();
}
});
}
}
Макет:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<EditText
android:id="@+id/editText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:ems="10" >
<requestFocus />
</EditText>
<EditText
android:id="@+id/editText2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/editText1"
android:ems="10" />
</RelativeLayout>
Если вы запустите это приложение и нажмите второй editText
, а затем вернитесь к первому, он не будет запускать onClick
. Вы можете продолжать выбирать назад и вперед, и он не будет запускать onClick
вообще. Мне нужна эта базовая функциональность, но я не мог придумать, как заставить ее работать. Идеи?
Примечание
Я пробовал все методы, рекомендованные на моем физическом устройстве уровня API 16 и моем эмуляторе уровня 8, но у меня такая же проблема.
Разъяснение
Когда editText1
фокусируется и нажимается, то срабатывает метод onClick
. Если editText2
фокусируется, а затем editText1
щелкнут, он не стреляет. Большая проблема.