I wrote function using onClick
method to EditText
, load data to RecycleView
. When click EditText
load all data to AlertBox
and if click one. Then load all data to RecycleView
according to it. First time it doesn't show, but again I click EditText
and select data from AlertBox
then show details in RecycleView
activity_day_plan.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" />
Main Activity
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);
}
}
There are a few ways you can achieve this. First, you can simply have it so that if the EditText block is empty, it is immediately repopulated with a "/" char. Alternatively, make it so that if the previous char is / , then prevent the user from deleting back.
In Android, the OnClickListener() interface has an onClick(View v) method that is called when the view (component) is clicked. The code for a component's functionality is written inside this method, and the listener is set using the setOnClickListener() method.
EditText is used for user input. TextView is used to display text and is not editable by the user. TextView can be updated programatically at any time.
Use onTouchListener instead of onClickListener
addline.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if(event.getAction() == MotionEvent.ACTION_UP) {
getlist();
return true;
}
return false;
}
});
All you need to do is disable focus
on that view and your view will react the first click.
In XML
<androidx.appcompat.widget.AppCompatEditText
android:id="@+id/edit_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:focusable="false" <!--this line does the magic -->
android:gravity="top" />
In Java
EditText editText = findViewById(R.id.username);
editText.setFocusable(false);
In Kotlin
val editText = findViewById<EditText>(R.id.edit_text)
editText.isFocusable = false
Use onFocusChangeListener
instead of onClickListener
:
yourEditText.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View view, boolean b) {
if (b)
// do your stuff here if b is true
}
});
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With