android - Android Edit text onclicklistener 在第一次点击时不起作用
问题描述
onClick
我使用方法编写函数EditText
,将数据加载到RecycleView
。单击EditText
加载所有数据时AlertBox
,如果单击一个。RecycleView
然后根据它加载所有数据。第一次它不显示,但我再次单击EditText
并从中选择数据,AlertBox
然后显示详细信息RecycleView
活动日计划.xml
<EditText
android:id="@+id/txtline"
android:layout_width="156dp"
android:layout_height="33dp"
android:clickable="true"
android:focusable="false"
android:focusableInTouchMode="false"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:layout_marginTop="12dp"
android:background="@drawable/input"
android:ems="10"
android:inputType="textPersonName"
android:textAlignment="center"
app:layout_constraintEnd_toStartOf="@+id/btnview"
app:layout_constraintStart_toEndOf="@+id/txtfactoryname"
app:layout_constraintTop_toBottomOf="@+id/txtfac" />
主要活动
private EditText addline;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_day_plan);
addline=(EditText)findViewById(R.id.txtline);
addline.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
getlist();
}
});
}
public void getlist()
{
arrayList.clear();
if(addfac.getText().equals(""))
{
Toast.makeText(DayPlanActivity.this,"Please Select Factory Code",Toast.LENGTH_SHORT).show();
}
else if(addline.getText().equals(""))
{
Toast.makeText(DayPlanActivity.this,"Please Select Line Code",Toast.LENGTH_SHORT).show();
}
else {
loadingbar.setMessage("Loading All Line Details");
StringRequest stringRequest = new StringRequest(Request.Method.POST, Constants.GETDALYDETAILS_URL,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
try {
JSONArray jsonArray = new JSONArray(response);
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);
String hourcode1 = jsonObject.getString("hour_code");
String prodqty = jsonObject.getString("qrytime");
String datetime = jsonObject.getString("hourqty");
gethourdetails gethour = new gethourdetails(hourcode1, prodqty, datetime);
arrayList.add(gethour);
}
adapter = new ContactAdapter(arrayList);
recyclerView.setAdapter(adapter);
loadingbar.dismiss();
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Hours.setText("Something Went Wrong Please Try again later....");
error.printStackTrace();
}
}) {
protected Map<String, String> getParams() throws AuthFailureError {
Map<String, String> params = new HashMap<String, String>();
params.put("username", username);
params.put("qno", qno);
return params;
}
};
stringRequest.setRetryPolicy(new DefaultRetryPolicy(
60000,
DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
MySingleton.getInstance(getApplicationContext()).addToRequestque(stringRequest);
}
}
解决方案
使用onTouchListener而不是onClickListener
addline.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if(event.getAction() == MotionEvent.ACTION_UP) {
getlist();
return true;
}
return false;
}
});
推荐阅读
- google-earth-engine - Google 地球引擎,在 Map.ui 中隐藏小部件
- javascript - 在 html 项目中使用 Puppeteer
- rust - 如何实现一个委托给 HashMap::values() 的迭代器
- python - 有没有办法为机器学习模型中的每个预测给出一个理由
- c++ - 在 ubuntu 18.04 上安装 Nvidia Cuda 10.2 + CuDNN 7.5 +OpenCV 4.2.0 后的链接问题
- c# - 为群聊发起 DeepLink url 调用
- html - 一个一个地显示 ul 元素
- c# - 使用 Serilog 通过电子邮件发送在程序结束时创建的日志文件
- python - 当python中的相似元素时如何有效地组合列表中的元组
- python - PyTest : 在运行时动态生成测试名称