ListView row not clickable (after adding two buttons) - java

Strangely, my listView's onClick no longer works after I added two Buttons: Submit and Show Result.
Here is the list view xml.
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
tools:context=".CulturalActivity"
android:background="#EFEFEF"
android:id="#+id/AdLayout"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:layout_marginTop="2dp"
android:layout_marginBottom="3dp"
>
<ListView
android:id="#+id/list"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:clickable="true"
android:divider="#android:color/transparent"
android:descendantFocusability="blocksDescendants"
android:scrollbars="none"
android:dividerHeight="10dp"
android:listSelector="#drawable/list_selector" />
</RelativeLayout>
Here is the layout of each list row:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="315dp"
android:clickable="true"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_marginTop="7dp"
android:background="#drawable/bg_card"
android:orientation="horizontal"
android:padding="5dip" >
<RelativeLayout
android:id="#+id/relativeLayout"
android:layout_width="match_parent"
android:layout_height="30dp"
android:layout_marginLeft="-60dp"
android:background="#2093CD"
android:gravity="center_horizontal" >
<TextView
android:id="#+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="52dp"
android:text="Audit"
android:textColor="#android:color/white"
android:textSize="20sp"
android:textStyle="bold" />
</RelativeLayout>
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="#+id/relativeLayout2" />
<TextView
android:id="#+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Farm/Grp"
android:textColor="#000000"
android:typeface="sans"
android:textSize="17sp"
android:textStyle="bold"
android:layout_alignTop="#+id/tile"
android:layout_toRightOf="#+id/textView4" />
<!--thumbnail-->
<LinearLayout
android:layout_width="80dp"
android:layout_height="80dp"
android:background="#drawable/thumbnail_image"
android:layout_marginTop="35dp"
android:gravity="center"
android:id="#+id/tile">
<ImageView
android:id="#+id/thumbImage"
android:layout_width="50dp"
android:clickable="false"
android:layout_height="50dp"
android:src="#drawable/opened" />
</LinearLayout>
<TextView
android:id="#+id/crophead"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Crop"
android:textColor="#000000"
android:typeface="sans"
android:textSize="17sp"
android:textStyle="bold"
android:layout_alignBottom="#+id/tile"
android:layout_alignLeft="#+id/title" />
<TextView
android:id="#+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Certification"
android:textColor="#000000"
android:typeface="sans"
android:textSize="17sp"
android:textStyle="bold"
android:layout_marginTop="10dp"
android:layout_below="#+id/textView4"
android:layout_alignParentLeft="true" />
<TextView
android:id="#+id/certification"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignTop="#+id/textView2"
android:layout_marginLeft="22dp"
android:layout_toRightOf="#+id/title"
android:text="Test"
android:textColor="#343434"
android:textSize="17sp" />
<TextView
android:id="#+id/textView4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Audit Type"
android:textColor="#000000"
android:typeface="sans"
android:textSize="17sp"
android:textStyle="bold"
android:layout_below="#+id/tile"
android:layout_alignLeft="#+id/textView2"
android:layout_marginTop="20dp" />
<TextView
android:id="#+id/audittype"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_above="#+id/textView2"
android:layout_alignLeft="#+id/certification"
android:maxLines="2"
android:text="ES"
android:textColor="#343434"
android:textSize="17sp" />
<View
android:layout_width="fill_parent"
android:layout_height="3px"
android:layout_marginTop="200dp"
android:background="#21265b"
android:id="#+id/view" />
<TextView
android:id="#+id/textView6"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Start Date"
android:textColor="#000000"
android:typeface="sans"
android:textSize="17sp"
android:textStyle="bold"
android:layout_below="#+id/view"
android:layout_alignLeft="#+id/view"
android:layout_marginLeft="5dp"
android:layout_marginTop="5dp"
android:layout_alignParentBottom="false" />
<TextView
android:id="#+id/textView7"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="End Date"
android:textColor="#000000"
android:typeface="sans"
android:textSize="17sp"
android:textStyle="bold"
android:layout_marginRight="15dp"
android:layout_alignTop="#+id/textView6"
android:layout_alignRight="#+id/startdate" />
<TextView
android:id="#+id/startdate"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textColor="#8B1A1A"
android:text="30/05/1992"
android:textSize="17sp"
android:layout_alignTop="#+id/enddate"
android:layout_toRightOf="#+id/relativeLayout2"
android:layout_marginLeft="6dp"
android:layout_alignParentBottom="false" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#8B1A1A"
android:text="2/13/14"
android:textSize="17sp"
android:id="#+id/enddate"
android:layout_below="#+id/textView7"
android:layout_alignRight="#+id/textView7" />
<TextView
android:id="#+id/farm"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignLeft="#+id/audittype"
android:maxLines="3"
android:layout_alignTop="#+id/title"
android:text="Tea Estate Nagarcoil Tamil Nadu, India "
android:textColor="#343434"
android:textSize="17sp" />
<TextView
android:id="#+id/crop"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignLeft="#+id/farm"
android:layout_alignTop="#+id/crophead"
android:maxLines="2"
android:text="Wheat without its chaff and barn but not brown"
android:textColor="#343434"
android:textSize="17sp" />
<Button
android:id="#+id/upsync"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:background="#drawable/blue_thumb"
android:layout_below="#+id/enddate"
android:focusable="false"
android:focusableInTouchMode="false"
android:text="Show Results"
android:textColor="#android:color/white" />
<Button
android:id="#+id/submit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="5dp"
android:layout_alignParentBottom="true"
android:layout_toLeftOf="#+id/upsync"
android:focusable="false"
android:focusableInTouchMode="false"
android:layout_below="#+id/enddate"
android:background="#drawable/blue_thumb"
android:text="Submit"
android:textColor="#android:color/white" />
</RelativeLayout>
Here is the click snippet of the list view:
listview.setOnItemClickListener( new AdapterView.OnItemClickListener() {
#Override
public void onItemClick(AdapterView<?> arg0, View view,
int position, long id) {
long audit_id;
try{
audit_id = (new CustomListAdapter(HomeList.this, c).getAuditID(position));
changeTileStatus(audit_id,"opened");
System.out.println("listClicked");
sendAuditAndIntent(audit_id);
}catch(Exception e)
{
System.out.println("ERROR # HOMELIST list onClick: "+e);
}
}
private void sendAuditAndIntent(long audit_id) { //sends audit id and api key
Intent intent = new Intent(HomeList.this,ChapterActivity.class );
Bundle extras= new Bundle();
extras.putString("audit_id",String.valueOf(audit_id));
extras.putString("api_key", api_key);
intent.putExtras(extras);
startActivity(intent);
}
private void changeTileStatus(long audit_id, String value) {
AuditTableManager tile= new AuditTableManager(HomeList.this);
tile.open();
tile.updateEntry(audit_id, value);
tile.close();
}
});

OnItemClickListener is not called if cells contain clickable Views. It is an Android feature. You can handle clicks by OnClickListener then - set it to your two buttons (not the listView itself).
In your adapter:
public View onCreateView(..., final int position){
...
convertView.findViewById(R.id.button1).setOnClickListener(new OnClickListener(){
public void onClick(View view){
itemClickedAction1(position);
}
});
convertView.findViewById(R.id.button2).setOnClickListener(new OnClickListener(){
public void onClick(View view){
itemClickedAction2(position);
}
});
...
}

Try android:Focusable="false" and also android:clickable="false" in the custom row TextView

Related

Best way to make CardView hide

this CardView
<android.support.v7.widget.CardView
android:id="#+id/cardv"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="visible"
android:layout_margin="8dp"
app:cardElevation="4dp">
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_marginTop="16dp"
android:layout_marginBottom="16dp"
android:orientation="horizontal"
android:layout_gravity="center_vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:layout_margin="2dp"
android:orientation="vertical"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content">
<LinearLayout
android:layout_marginLeft="5dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView
android:text="Data:"
android:textStyle="bold"
android:textColor="#android:color/black"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id="#+id/order_date"
android:layout_marginLeft="10dp"
android:layout_gravity="center_vertical|start"
android:textAllCaps="true"
android:textStyle="bold"
android:textColor="#android:color/black"
android:text="Order Date"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
<LinearLayout
android:layout_marginLeft="5dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView
android:text="Nº de pedido:"
android:textStyle="bold"
android:textColor="#android:color/black"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id="#+id/order_id"
android:layout_marginLeft="10dp"
android:layout_gravity="center_vertical|start"
android:textAllCaps="true"
android:textStyle="bold"
android:textColor="#android:color/black"
android:text="#111111"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
<LinearLayout
android:layout_marginLeft="5dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView
android:text="Nome:"
android:textStyle="bold"
android:textColor="#android:color/black"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id="#+id/userName"
android:layout_marginLeft="10dp"
android:layout_gravity="center_vertical|start"
android:textAllCaps="true"
android:textStyle="bold"
android:textColor="#android:color/black"
android:text="Name"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
<LinearLayout
android:layout_marginLeft="5dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView
android:text="Contacto:"
android:textStyle="bold"
android:textColor="#android:color/black"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id="#+id/order_phone"
android:layout_marginLeft="10dp"
android:layout_gravity="center_vertical|start"
android:textAllCaps="true"
android:textStyle="bold"
android:textColor="#android:color/black"
android:text="123456789"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
<LinearLayout
android:layout_marginLeft="5dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView
android:text="Morada:"
android:textStyle="bold"
android:textColor="#android:color/black"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id="#+id/order_address"
android:layout_marginLeft="10dp"
android:layout_gravity="center_vertical|start"
android:textAllCaps="true"
android:textStyle="bold"
android:textColor="#android:color/black"
android:text="Address"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
<LinearLayout
android:layout_marginLeft="5dp"
android:textStyle="bold"
android:textColor="#android:color/black"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView
android:text="Metodo de pagamento:"
android:textStyle="bold"
android:textColor="#android:color/black"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id="#+id/paymentMethod"
android:layout_marginLeft="10dp"
android:layout_gravity="center_vertical|start"
android:textAllCaps="true"
android:textStyle="bold"
android:textColor="#android:color/black"
android:text="Payment Method"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
<LinearLayout
android:layout_marginLeft="5dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView
android:text="Estado de pagamento:"
android:textStyle="bold"
android:textColor="#android:color/black"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id="#+id/paymentState"
android:layout_marginLeft="10dp"
android:layout_gravity="center_vertical|start"
android:textAllCaps="true"
android:textStyle="bold"
android:textColor="#android:color/black"
android:text="Payment State"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
<LinearLayout
android:layout_marginLeft="5dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView
android:text="Estado do pedido:"
android:textStyle="bold"
android:textColor="#android:color/black"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id="#+id/order_status"
android:layout_marginLeft="10dp"
android:layout_gravity="center_vertical|start"
android:textAllCaps="true"
android:textStyle="bold"
android:textColor="#android:color/black"
android:text="Status"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
<LinearLayout
android:layout_marginLeft="5dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView
android:text="Total:"
android:textStyle="bold"
android:textColor="#android:color/black"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id="#+id/totalAmount"
android:layout_marginLeft="10dp"
android:layout_gravity="center_vertical|start"
android:textAllCaps="true"
android:textStyle="bold"
android:textColor="#android:color/black"
android:text="Total Amount"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_weight="4"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<info.hoang8f.widget.FButton
android:layout_margin="5dp"
android:id="#+id/btnEdit"
android:text="Estado"
android:textColor="#android:color/white"
android:shadowColor="#android:color/black"
android:layout_weight="1"
app:cornerRadius="5dp"
app:fButtonColor="#android:color/holo_red_light"
android:layout_width="0dp"
android:layout_height="wrap_content" />
<info.hoang8f.widget.FButton
android:id="#+id/btnHide"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:layout_weight="1"
android:onClick="Hide"
android:shadowColor="#android:color/black"
android:text="Finalizr"
android:textColor="#android:color/white"
app:cornerRadius="5dp"
app:fButtonColor="#android:color/holo_blue_light" />
<info.hoang8f.widget.FButton
android:id="#+id/btnDetail"
android:layout_margin="5dp"
android:text="Detalhes"
android:layout_weight="1"
android:textColor="#android:color/white"
android:shadowColor="#android:color/black"
app:cornerRadius="5dp"
app:fButtonColor="#android:color/holo_orange_light"
android:layout_width="0dp"
android:layout_height="wrap_content" />
<info.hoang8f.widget.FButton
android:id="#+id/btnDirection"
android:layout_margin="5dp"
android:text="Direções"
android:layout_weight="1"
android:textColor="#android:color/white"
android:shadowColor="#android:color/black"
app:cornerRadius="5dp"
app:fButtonColor="#android:color/holo_green_dark"
android:layout_width="0dp"
android:layout_height="wrap_content" />
</LinearLayout>
</LinearLayout>
</android.support.v7.widget.CardView>
appears in this list:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="16dp"
android:background="#drawable/bgencomendeas"
tools:context=".OrderStatus">
<Button
android:id="#+id/voltar2"
android:layout_width="65dp"
android:layout_height="wrap_content"
android:background="#color/fbutton_color_transparent"
android:text="Voltar"
android:textSize="12sp"
android:textStyle="bold"
tools:ignore="MissingConstraints" />
<pl.droidsonroids.gif.GifImageView
android:id="#+id/imgAndroidInstalike2"
android:layout_width="85dp"
android:layout_height="98dp"
android:layout_alignParentBottom="true"
android:background="#drawable/instalike2"
tools:ignore="MissingConstraints"
tools:layout_editor_absoluteX="297dp"
tools:layout_editor_absoluteY="595dp" />
<android.support.v7.widget.RecyclerView
android:layout_marginTop="46dp"
android:id="#+id/listOrders"
android:background="#android:color/transparent"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</android.support.constraint.ConstraintLayout>
I declared in ViewHolder :
public class OrderViewHolder extends RecyclerView.ViewHolder{
public TextView txtOrderId,txtOrderStatus,txtOrderPhone,txtOrderAddress,txtOrderDate,txtPaymentState,txtPaymentMethod,txtName,txtTotal;
public Button btnEdit,btnHide,btnRemove,btnDetail,btnDirection;
public CardView cardlayoutadapter;
public OrderViewHolder(#NonNull View itemView) {
super(itemView);
txtOrderAddress=(TextView)itemView.findViewById(R.id.order_address);
txtOrderId=(TextView)itemView.findViewById(R.id.order_id);
txtOrderStatus=(TextView)itemView.findViewById(R.id.order_status);
txtOrderPhone=(TextView)itemView.findViewById(R.id.order_phone);
txtOrderDate=(TextView)itemView.findViewById(R.id.order_date);
txtPaymentState=(TextView)itemView.findViewById(R.id.paymentState);
txtPaymentMethod=(TextView)itemView.findViewById(R.id.paymentMethod);
txtName=(TextView)itemView.findViewById(R.id.userName);
txtTotal=(TextView)itemView.findViewById(R.id.totalAmount);
btnEdit=(Button)itemView.findViewById(R.id.btnEdit);
btnRemove=(Button)itemView.findViewById(R.id.btnRemove);
btnHide=(Button)itemView.findViewById(R.id.btnHide);
btnDetail=(Button)itemView.findViewById(R.id.btnDetail);
btnDirection=(Button)itemView.findViewById(R.id.btnDirection);
cardlayoutadapter = (CardView)itemView.findViewById(R.id.cardv);
}
}
when I click the btnHide button it goes to "private void hideOrder" to make sure I want to make it disappear after completing the order, and this is where I wanted to somehow make the cardview disappear with that data, so it's not there to occupy , I have another "layout that makes eliminate", either in GONE or invisibility or put the parameter layout_height == 0
#Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
CalligraphyConfig.initDefault(new CalligraphyConfig.Builder()
.setDefaultFontPath("fonts/Vahika.ttf")
.setFontAttrId(R.attr.fontPath)
.build());
setContentView(R.layout.activity_order_status);
#Override
protected void onBindViewHolder(#NonNull OrderViewHolder holder, final int position, #NonNull final Request model) {
holder.txtOrderId.setText(adapter.getRef(position).getKey());
holder.txtOrderStatus.setText(Common.convertCodeToStatus(model.getStatus()));
holder.txtOrderAddress.setText(model.getAddress());
holder.txtOrderPhone.setText(model.getPhone());
holder.txtOrderDate.setText(Common.getDate(Long.parseLong(adapter.getRef(position).getKey())));
holder.txtPaymentMethod.setText(model.getPaymentMethod());
holder.txtPaymentState.setText(model.getPaymentState());
holder.txtName.setText(model.getName());
holder.txtTotal.setText(model.getTotal());
holder.btnHide.setOnClickListener(new View.OnClickListener() {
#Override
public void onClick(View v) {
hideOrder(adapter.getRef(position).getKey());
}
});
private void hideOrder(final String key) {
AlertDialog.Builder alertDialog=new AlertDialog.Builder(OrderStatus.this);
alertDialog.setTitle("Olá, "+Common.currentUser.getName());
alertDialog.setMessage("O pedido foi entregue?");
alertDialog.setCancelable(false);
alertDialog.setPositiveButton("Sim", new DialogInterface.OnClickListener() {
#Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
//linearcardv
//reuests.child(key).removeValue();
//binding.CardView.setVisibility(View.GONE);
//reuests.child(key).setValue(View.INVISIBLE);
cardlayoutadapter.setVisibility(View.GONE);
adapter.notifyDataSetChanged();
Toast.makeText(OrderStatus.this, "Pedido finalizado com sucesso!", Toast.LENGTH_SHORT).show();
}
});
alertDialog.setNegativeButton("Não", new DialogInterface.OnClickListener() {
#Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
Toast.makeText(OrderStatus.this, "Cancelado", Toast.LENGTH_SHORT).show();
}
});
alertDialog.setIcon(R.mipmap.picture);
alertDialog.show();
}
private void hideOrder(final Integer position) {//Pass selected item position
AlertDialog.Builder alertDialog=new AlertDialog.Builder(OrderStatus.this);
alertDialog.setTitle("Olá, "+Common.currentUser.getName());
alertDialog.setMessage("O pedido foi entregue?");
alertDialog.setCancelable(false);
alertDialog.setPositiveButton("Sim", new DialogInterface.OnClickListener() {
#Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
//**remove item from list at specific position**
adapter.notifyDataSetChanged();
Toast.makeText(OrderStatus.this, "Pedido finalizado com sucesso!", Toast.LENGTH_SHORT).show();
}
});
alertDialog.setNegativeButton("Não", new DialogInterface.OnClickListener() {
#Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
Toast.makeText(OrderStatus.this, "Cancelado", Toast.LENGTH_SHORT).show();
}
});
alertDialog.setIcon(R.mipmap.picture);
alertDialog.show();
}

Text in NestedScrollView in Fragment overlaps the 2nd time that I open the Fragment. First time it works fine

I've got a NestedScrollView inside of a ScrollView because I have an Activity with three hidden fragments that contain text, and when you click one of the fragments it opens to reveal the text. But the thing is that there is quite a bit of text so I'm using NestedScrollView so the reader can read all of it, and the first time it works fine (text doesn't overlap), and then second time when I close the fragment and re-open it the text starts overlapping...
So as mentioned, first time it doesn't happen, and then I close the fragment and reopen it and this happens:
So why is this happening and how can I fix it?
Fragment inside Activity
<androidx.core.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:scrollbars="none"
tools:context=".Fragment.PrivacyFragment">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="22dp"
android:layout_marginTop="5dp"
android:padding="8dp"
android:textColor="#color/colorBlack"
android:textSize="22sp"
android:textStyle="bold" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="22dp"
android:layout_marginTop="5dp"
android:layout_marginEnd="20dp"
android:padding="8dp"
android:textColor="#color/colorBlack"
android:textSize="18sp"
android:textStyle="bold" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="22dp"
android:layout_marginEnd="20dp"
android:padding="8dp"
android:textColor="#color/colorBlack"
android:textSize="16sp" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="22dp"
android:layout_marginEnd="20dp"
android:padding="8dp"
android:textColor="#color/colorBlack"
android:textSize="18sp"
android:textStyle="bold" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="22dp"
android:layout_marginEnd="20dp"
android:padding="8dp"
android:textColor="#color/Grey"
android:textSize="18sp"
android:textStyle="bold" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="22dp"
android:layout_marginEnd="20dp"
android:padding="8dp"
android:textColor="#color/colorBlack"
android:textSize="16sp" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="22dp"
android:layout_marginEnd="20dp"
android:padding="8dp"
android:textColor="#color/Grey"
android:textSize="18sp"
android:textStyle="bold" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="22dp"
android:layout_marginEnd="20dp"
android:padding="8dp"
android:textColor="#color/colorBlack"
android:textSize="16sp" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="22dp"
android:layout_marginEnd="20dp"
android:padding="8dp"
android:textColor="#color/Grey"
android:textSize="18sp"
android:textStyle="bold" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="22dp"
android:layout_marginEnd="20dp"
android:padding="8dp"
android:textColor="#color/colorBlack"
android:textSize="16sp" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="22dp"
android:layout_marginTop="5dp"
android:layout_marginEnd="20dp"
android:padding="8dp"
android:textColor="#color/colorBlack"
android:textSize="18sp"
android:textStyle="bold" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="22dp"
android:layout_marginEnd="20dp"
android:padding="8dp"
android:textColor="#color/colorBlack"
android:textSize="16sp" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="22dp"
android:layout_marginTop="5dp"
android:layout_marginEnd="20dp"
android:padding="8dp"
android:textColor="#color/colorBlack"
android:textSize="18sp"
android:textStyle="bold" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="22dp"
android:layout_marginEnd="20dp"
android:padding="8dp"
android:textColor="#color/colorBlack"
android:textSize="16sp" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="22dp"
android:layout_marginTop="5dp"
android:layout_marginEnd="20dp"
android:padding="8dp"
android:textColor="#color/colorBlack"
android:textSize="18sp"
android:textStyle="bold" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="22dp"
android:layout_marginEnd="20dp"
android:padding="8dp"
android:textColor="#color/colorBlack"
android:textSize="16sp" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="22dp"
android:layout_marginTop="5dp"
android:layout_marginEnd="20dp"
android:padding="8dp"
android:textColor="#color/colorBlack"
android:textSize="18sp"
android:textStyle="bold" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="22dp"
android:layout_marginEnd="20dp"
android:padding="8dp"
android:textColor="#color/colorBlack"
android:textSize="16sp" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="22dp"
android:layout_marginTop="5dp"
android:layout_marginEnd="20dp"
android:padding="8dp"
android:textColor="#color/colorBlack"
android:textSize="18sp"
android:textStyle="bold" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="22dp"
android:layout_marginEnd="20dp"
android:padding="8dp"
android:textColor="#color/colorBlack"
android:textSize="16sp" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="22dp"
android:layout_marginTop="5dp"
android:layout_marginEnd="20dp"
android:padding="8dp"
android:textColor="#color/colorBlack"
android:textSize="18sp"
android:textStyle="bold" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="22dp"
android:layout_marginEnd="20dp"
android:padding="8dp"
android:textColor="#color/colorBlack"
android:textSize="16sp" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="22dp"
android:layout_marginTop="5dp"
android:layout_marginEnd="20dp"
android:padding="8dp"
android:textColor="#color/colorBlack"
android:textSize="18sp"
android:textStyle="bold" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="22dp"
android:layout_marginEnd="20dp"
android:padding="8dp"
android:textColor="#color/colorBlack"
android:textSize="16sp" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="22dp"
android:layout_marginTop="5dp"
android:layout_marginEnd="20dp"
android:padding="8dp"
android:textColor="#color/colorBlack"
android:textSize="18sp"
android:textStyle="bold" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="22dp"
android:layout_marginEnd="20dp"
android:padding="8dp"
android:textColor="#color/colorBlack"
android:textSize="16sp" />
</LinearLayout>
</androidx.core.widget.NestedScrollView>
Activity
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#drawable/button_gradient_two">
<RelativeLayout
android:id="#+id/relative_layout_one"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:layout_marginTop="25dp"
android:layout_marginEnd="10dp">
</RelativeLayout>
<ScrollView
android:id="#+id/scroll_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:scrollbars="none">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:id="#+id/arrow_back"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:layout_marginTop="25dp"
android:padding="8dp"
android:src="#drawable/icon_search_100" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="25dp"
android:padding="8dp"
android:text="Settings"
android:textColor="#color/White"
android:textSize="22sp"
android:textStyle="bold" />
<de.hdodenhof.circleimageview.CircleImageView
android:id="#+id/image_profile"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_centerHorizontal="true"
android:layout_marginTop="100dp"
android:elevation="16dp"
android:src="#drawable/profile_placeholder" />
<com.google.android.material.card.MaterialCardView
style="#style/CustomCardViewStyle"
android:layout_width="match_parent"
android:layout_height="1000dp"
android:layout_marginTop="150dp"
app:cardElevation="12dp">
<RelativeLayout
android:id="#+id/relative_layout_two"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="#+id/name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="50dp"
android:gravity="center_horizontal"
android:text="Jack Sparrow"
android:textColor="#color/Black"
android:textSize="32sp"
android:textStyle="bold" />
<TextView
android:id="#+id/username"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="#+id/name"
android:layout_centerHorizontal="true"
android:gravity="center_horizontal"
android:text="jacksparrow"
android:textColor="#color/Grey"
android:textSize="22sp"
android:textStyle="" />
<TextView
android:id="#+id/bio"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="#+id/username"
android:layout_centerHorizontal="true"
android:layout_marginTop="4dp"
android:gravity="center_horizontal"
android:text="This is my bio!"
android:textColor="#color/Grey"
android:textStyle="" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="#+id/bio"
android:orientation="vertical">
<TextView
android:id="#+id/privacy"
style="#style/SelectableItemBackground"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="12dp"
android:text="#string/privacy"
android:textColor="#color/colorBlack"
android:textSize="18sp" />
<FrameLayout
android:id="#+id/container_privacy"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="gone" />
<TextView
android:id="#+id/security"
style="#style/SelectableItemBackground"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="12dp"
android:text="#string/security"
android:textColor="#color/colorBlack"
android:textSize="18sp" />
<FrameLayout
android:id="#+id/container_security"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="gone" />
<TextView
android:id="#+id/help"
style="#style/SelectableItemBackground"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="12dp"
android:text="#string/help"
android:textColor="#color/colorBlack"
android:textSize="18sp" />
<FrameLayout
android:id="#+id/container_help"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="gone" />
<TextView
android:id="#+id/about"
style="#style/SelectableItemBackground"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="12dp"
android:text="#string/about"
android:textColor="#color/colorBlack"
android:textSize="18sp" />
<FrameLayout
android:id="#+id/container_about"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="gone" />
</LinearLayout>
</RelativeLayout>
</com.google.android.material.card.MaterialCardView>
</RelativeLayout>
</ScrollView>
</RelativeLayout>
SettingsActivity
public class SettingsActivity extends AppCompatActivity {
private ImageView mImageProfile, mBackArrow;
private TextView mName, mUsername, mBio, mPrivacy, mSecurity, mHelp, mAbout;
private FirebaseUser mFirebaseUser;
private FrameLayout mPrivacyContainer, mSecurityContainer, mHelpContainer, mAboutContainer;
#Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_settings_tester);
mFirebaseUser = FirebaseAuth.getInstance().getCurrentUser();
mImageProfile = findViewById(R.id.image_profile);
mName = findViewById(R.id.name);
mUsername = findViewById(R.id.username);
mBio = findViewById(R.id.bio);
mPrivacy = findViewById(R.id.privacy);
mSecurity = findViewById(R.id.security);
mHelp = findViewById(R.id.help);
mAbout = findViewById(R.id.about);
mImageProfile.setAnimation(AnimationUtils.loadAnimation(getApplicationContext(), R.anim.profile_animation_profile_picture));
mName.setAnimation(AnimationUtils.loadAnimation(getApplicationContext(), R.anim.profile_animation_name));
mUsername.setAnimation(AnimationUtils.loadAnimation(getApplicationContext(), R.anim.profile_animation_username));
mBio.setAnimation(AnimationUtils.loadAnimation(getApplicationContext(), R.anim.profile_animation_bio));
mPrivacyContainer = findViewById(R.id.container_privacy);
mSecurityContainer = findViewById(R.id.container_security);
mHelpContainer = findViewById(R.id.container_help);
mAboutContainer = findViewById(R.id.container_about);
mPrivacy.setOnClickListener(v -> {
getSupportFragmentManager().beginTransaction().add(R.id.container_privacy, new PrivacyFragment(), null).addToBackStack(null).commit();
if (mPrivacyContainer.getVisibility() == View.GONE) {
mPrivacyContainer.setVisibility(View.VISIBLE);
} else {
mPrivacyContainer.setVisibility(View.GONE);
}
});
mSecurity.setOnClickListener(v -> {
getSupportFragmentManager().beginTransaction().add(R.id.container_security, new SecurityFragment(), null).addToBackStack(null).commit();
if (mSecurityContainer.getVisibility() == View.GONE) {
mSecurityContainer.setVisibility(View.VISIBLE);
} else {
mSecurityContainer.setVisibility(View.GONE);
}
});
mHelp.setOnClickListener(v -> {
getSupportFragmentManager().beginTransaction().add(R.id.container_help, new HelpFragment(), null).addToBackStack(null).commit();
if (mHelpContainer.getVisibility() == View.GONE) {
mHelpContainer.setVisibility(View.VISIBLE);
} else {
mHelpContainer.setVisibility(View.GONE);
}
});
mAbout.setOnClickListener(v -> {
getSupportFragmentManager().beginTransaction().add(R.id.container_about, new AboutFragment(), null).addToBackStack(null).commit();
if (mAboutContainer.getVisibility() == View.GONE) {
mAboutContainer.setVisibility(View.VISIBLE);
} else {
mAboutContainer.setVisibility(View.GONE);
}
});
getUserInfo();
setBackArrow();
}
private void getUserInfo() {
DatabaseReference reference = FirebaseDatabase.getInstance().getReference("Users").child(mFirebaseUser.getUid());
reference.addValueEventListener(new ValueEventListener() {
#Override
public void onDataChange(#NonNull DataSnapshot dataSnapshot) {
User user = dataSnapshot.getValue(User.class);
if (user != null) {
mName.setText(user.getFullname());
mUsername.setText(user.getUsername());
mBio.setText(user.getBio());
if (user.getImageurl() == null) {
mImageProfile.setImageResource(R.drawable.profile_placeholder);
} else {
Glide.with(getApplicationContext()).load(user.getImageurl()).into(mImageProfile);
}
}
}
#Override
public void onCancelled(#NonNull DatabaseError databaseError) {
}
});
}
private void setBackArrow() {
mBackArrow = findViewById(R.id.arrow_back);
mBackArrow.setOnClickListener(new View.OnClickListener() {
#Override
public void onClick(View v) {
finish();
}
});
}
}
You are getting the fragment overlapped because there is a new fragment added each time.
You simply need to do a check if the fragment exits already then there is no need to add a new fragment. You can assign a 'tag' when adding fragment. Code as follows-
if (fragmentManager.findFragmentByTag("First Fragment") == null)
fragmentManager.beginTransaction().add(R.id.fragment, new FirstFragment(), "First Fragment").commit();
OR
Rather then using .add() method use .replace() to make sure fragment got replaced each time.
According to your Activity code, you need to choose the correct way, but make sure there is no fragment getting re-created without destroying previous one.
Happy Coding !!
You are adding two fragments on top of each other.
Instead of add use replace when executing the fragment transaction:
From:
getSupportFragmentManager().beginTransaction().add(R.id.container_privacy, new PrivacyFragment(), null).addToBackStack(null).commit();
if (mPrivacyContainer.getVisibility() == View.GONE) {
mPrivacyContainer.setVisibility(View.VISIBLE);
} else {
mPrivacyContainer.setVisibility(View.GONE);
}
To:
getSupportFragmentManager().beginTransaction().replace(R.id.container_privacy, new PrivacyFragment(), null).addToBackStack(null).commit();
if (mPrivacyContainer.getVisibility() == View.GONE) {
mPrivacyContainer.setVisibility(View.VISIBLE);
} else {
mPrivacyContainer.setVisibility(View.GONE);
}

How to start code when pressed four Buttons in Android

I want to make pin input with Buttons and TextView in Android.
I have Textview for pin , and 9 Buttons for user to press as digits.
What i want when user press four buttons to change my Textview letter by letter(Button by Button) , and when entered fourth button to start code
Here is image:
Any tips please?
Here is my code:
content_main.xml :
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#color/white"
app:layout_behavior="#string/appbar_scrolling_view_behavior"
tools:context="com.group.digit.razvoj.appointment.MainActivity"
tools:showIn="#layout/app_bar_main">
<LinearLayout
android:id="#+id/mainLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:id="#+id/pinLayoutMain"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right|center_vertical"
android:orientation="vertical"
android:paddingRight="#dimen/left_margin_pin">
<LinearLayout
android:id="#+id/pinTvLayout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginBottom="#dimen/between_margin"
android:layout_marginTop="#dimen/between_margin"
android:layout_weight="1"
android:orientation="horizontal">
<TextView
android:id="#+id/pinTv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="#string/pin"
android:textColor="#android:color/black"
android:textSize="18sp" />
</LinearLayout>
<LinearLayout
android:id="#+id/passLayout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginBottom="50dp"
android:layout_weight="1"
android:orientation="horizontal">
<TextView
android:id="#+id/pinEntry"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="****"
android:textColor="#android:color/black"
android:textSize="18sp" />
</LinearLayout>
<LinearLayout
android:id="#+id/firstRow"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginBottom="2dp"
android:layout_weight="1"
android:orientation="horizontal">
<Button
android:id="#+id/b1"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_marginRight="2dp"
android:layout_weight="1"
android:background="#drawable/round_button"
android:gravity="center_vertical|center_horizontal"
android:text="1"
android:textColor="#color/black"
android:textSize="30sp" />
<Button
android:id="#+id/b2"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_marginRight="2dp"
android:layout_weight="1"
android:background="#drawable/round_button"
android:gravity="center_vertical|center_horizontal"
android:text="2"
android:textColor="#color/black"
android:textSize="30sp" />
<Button
android:id="#+id/b3"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_marginRight="2dp"
android:layout_weight="1"
android:background="#drawable/round_button"
android:gravity="center_vertical|center_horizontal"
android:text="3"
android:textColor="#color/black"
android:textSize="30sp" />
</LinearLayout>
<LinearLayout
android:id="#+id/secondRow"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginBottom="2dp"
android:layout_weight="1"
android:orientation="horizontal">
<Button
android:id="#+id/b4"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_marginRight="2dp"
android:layout_weight="1"
android:background="#drawable/round_button"
android:gravity="center_vertical|center_horizontal"
android:text="4"
android:textColor="#color/black"
android:textSize="30sp" />
<Button
android:id="#+id/b5"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_marginRight="2dp"
android:layout_weight="1"
android:background="#drawable/round_button"
android:gravity="center_vertical|center_horizontal"
android:text="5"
android:textColor="#color/black"
android:textSize="30sp" />
<Button
android:id="#+id/b6"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_marginRight="2dp"
android:layout_weight="1"
android:background="#drawable/round_button"
android:gravity="center_vertical|center_horizontal"
android:text="6"
android:textColor="#color/black"
android:textSize="30sp" />
</LinearLayout>
<LinearLayout
android:id="#+id/sthirdRow"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginBottom="2dp"
android:layout_weight="1"
android:orientation="horizontal">
<Button
android:id="#+id/b7"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_marginRight="2dp"
android:layout_weight="1"
android:background="#drawable/round_button"
android:gravity="center_vertical|center_horizontal"
android:text="7"
android:textColor="#color/black"
android:textSize="30sp" />
<Button
android:id="#+id/b8"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_marginRight="2dp"
android:layout_weight="1"
android:background="#drawable/round_button"
android:gravity="center_vertical|center_horizontal"
android:text="8"
android:textColor="#color/black"
android:textSize="30sp" />
<Button
android:id="#+id/b9"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_marginRight="2dp"
android:layout_weight="1"
android:background="#drawable/round_button"
android:gravity="center_vertical|center_horizontal"
android:text="9"
android:textColor="#color/black"
android:textSize="30sp" />
</LinearLayout>
<LinearLayout
android:id="#+id/forthow"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="2dp"
android:layout_weight="1"
android:orientation="horizontal">
<Button
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_marginRight="2dp"
android:layout_weight="1"
android:background="#drawable/round_button"
android:gravity="center_vertical|center_horizontal"
android:text="1"
android:textColor="#color/black"
android:textSize="30sp" />
<Button
android:id="#+id/b0"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_marginRight="2dp"
android:layout_weight="1"
android:background="#drawable/round_button"
android:gravity="center_vertical|center_horizontal"
android:text="0"
android:textColor="#color/black"
android:textSize="30sp" />
<Button
android:id="#+id/bback"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_marginRight="2dp"
android:layout_weight="1"
android:background="#drawable/round_button"
android:gravity="center_vertical|center_horizontal"
android:text="-"
android:textColor="#color/black"
android:textSize="30sp" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
MainActivity.java:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//init buttons
for (int i = 0; i < MAX_PIN_NUM; i++) {
buttonsPinWidget[i] = (Button) findViewById(buttonsPinId[i]);
}
pinentry = (TextView) findViewById(R.id.pinEntry);
}
You should to use one onClickListener for everyone button with switch case inside of it.
In every case of switch case block your should addor delete (if you have the button for deleting) one character it TextView.
After switch case block check the text length in your TextView. If the length of it equals 4, you can try to authorization or login or other actions.
Sorry for bad English.
Very interesting question first of all.
The only solution I can think of is to create a public method which will always check the length of the textview (which I think should be edittext) and add that method for every button. Once the length of the textview is 4, trigger your code you want.
Let me know if you need some more clarification
btn.setOnClickListener(new View.OnClickListener() {
#Override
public void onClick(View view) {
String s=txtView.getText().toString();
if(s.length()<3){
s=s+btn.getText().toString();
txtView.setText(""+s);
}else if(s.length()==3){
s=s+btn.getText().toString();
txtView.setText(""+s);
// write your code
}
}
});

Hide and show when check box is checked

In my Activity A , I have checkbox, spinner and editText. If checkbox is checked, it will show editText and hide spinner and textView .Otherwise, it will show them.
public void addListenerOnChk() // for checkbox
{
checkBox2.setOnClickListener(new View.OnClickListener() {
#Override
public void onClick(View v) {
if(((CheckBox)v).isChecked())
{
typeProject.setVisibility(View.VISIBLE);
project.setVisibility(View.GONE);
ProjectName.setVisibility(View.GONE);
}
else
{
typeProject.setVisibility(View.GONE);
project.setVisibility(View.VISIBLE);
ProjectName.setVisibility(View.VISIBLE);
}
}
});
So this is my layout
Before checkbox is checked
After
If the checkbox did not checked, how can I move the progress bar below the checkbox(Currently it has a space for editText)?
If checkbox checked, how to move up the checkbox and hide the spinner and text ? Thanks.
Here my layout...sorry, it a bit long (but the things I want to change is id/ProjectName, id/checkbox2 and id/editText). id/checkbox2 and id/editText is in the last two paragraph.
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="#+id/layout"
android:background="#mipmap/background_work_details">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="#+id/ProjectName"
android:padding="10dp"
android:text="Project/Service/Training"
android:textColor="#color/peru"
android:layout_alignParentTop="true"
android:layout_x="14dp"
android:layout_y="11dp" />
<Spinner
android:layout_width="322dp"
android:layout_height="41dp"
android:layout_margin="10dp"
android:background="#drawable/round_corner_square"
android:layout_weight="0.07"
android:paddingLeft="20dp"
android:layout_x="15dp"
android:layout_y="47dp"
android:id="#+id/SpinnerProject"
android:spinnerMode="dropdown" />
<EditText
android:layout_width="339dp"
android:layout_height="156dp"
android:layout_margin="10dp"
android:background="#drawable/round_corner_square"
android:layout_weight="0.07"
android:paddingLeft="20dp"
android:paddingBottom="80dp"
android:layout_x="14dp"
android:layout_y="730dp"
android:id="#+id/editTextWorkDescription" />
<SeekBar
android:layout_width="206dp"
android:layout_height="wrap_content"
android:id="#+id/seekBarPercentage"
android:layout_x="30dp"
android:layout_y="189dp"
android:indeterminate="false" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="#+id/textView5"
android:padding="10dp"
android:text="Time In"
android:textColor="#color/peru"
android:layout_alignParentTop="true"
android:layout_x="16dp"
android:layout_y="225dp" />
<EditText
android:layout_width="80dp"
android:layout_height="34dp"
android:layout_margin="10dp"
android:focusableInTouchMode="false"
android:background="#drawable/round_corner_square"
android:layout_weight="0.07"
android:paddingLeft="20dp"
android:layout_x="86dp"
android:layout_y="225dp"
android:id="#+id/TimeIn" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="#+id/textView4"
android:padding="10dp"
android:text="Time Out"
android:textColor="#color/peru"
android:layout_alignParentTop="true"
android:layout_x="172dp"
android:layout_y="225dp" />
<EditText
android:layout_width="87dp"
android:layout_height="34dp"
android:layout_margin="10dp"
android:focusableInTouchMode="false"
android:background="#drawable/round_corner_square"
android:layout_weight="0.07"
android:paddingLeft="20dp"
android:layout_x="246dp"
android:layout_y="225dp"
android:id="#+id/TimeOut" />
<Button
android:layout_width="127dp"
android:layout_height="63dp"
android:text="save"
android:drawableRight="#mipmap/save"
android:id="#+id/save"
android:layout_x="217dp"
android:layout_y="891dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:text="Small Text"
android:id="#+id/textProgress"
android:layout_x="257dp"
android:textColor="#color/red"
android:layout_y="194dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="#+id/textView7"
android:padding="10dp"
android:text="Travel From"
android:textColor="#color/peru"
android:layout_alignParentTop="true"
android:layout_x="14dp"
android:layout_y="262dp" />
<EditText
android:layout_width="223dp"
android:layout_height="85dp"
android:layout_margin="10dp"
android:background="#drawable/round_corner_square"
android:layout_weight="0.07"
android:paddingLeft="20dp"
android:layout_x="14dp"
android:layout_y="300dp"
android:id="#+id/travelFrom" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="#+id/textView15"
android:padding="10dp"
android:text="Travel To"
android:textColor="#color/peru"
android:layout_alignParentTop="true"
android:layout_x="14dp"
android:layout_y="390dp" />
<EditText
android:layout_width="97dp"
android:layout_height="35dp"
android:layout_margin="10dp"
android:inputType="numberDecimal"
android:background="#drawable/round_corner_square"
android:layout_weight="0.07"
android:paddingLeft="15dp"
android:layout_x="255dp"
android:layout_y="470dp"
android:id="#+id/mileage" />
<EditText
android:layout_width="222dp"
android:layout_height="85dp"
android:layout_margin="10dp"
android:background="#drawable/round_corner_square"
android:layout_weight="0.07"
android:paddingLeft="20dp"
android:layout_x="14dp"
android:layout_y="423dp"
android:id="#+id/travelTo" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="#+id/textView16"
android:padding="10dp"
android:inputType="numberDecimal"
android:text="Hotel accomm"
android:textColor="#color/peru"
android:layout_alignParentTop="true"
android:layout_x="14dp"
android:layout_y="550dp"
android:allowUndo="true" />
<EditText
android:layout_width="92dp"
android:layout_height="34dp"
android:layout_margin="10dp"
android:inputType="numberDecimal"
android:background="#drawable/round_corner_square"
android:layout_weight="0.07"
android:hint="RM"
android:paddingLeft="15dp"
android:layout_x="131dp"
android:layout_y="554dp"
android:id="#+id/hotel" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="#+id/textView17"
android:padding="10dp"
android:text="Toll"
android:textColor="#color/peru"
android:layout_alignParentTop="true"
android:layout_x="222dp"
android:layout_y="550dp" />
<EditText
android:layout_width="187dp"
android:layout_height="34dp"
android:layout_margin="10dp"
android:background="#drawable/round_corner_square"
android:layout_weight="0.07"
android:hint="RM"
android:inputType="numberDecimal"
android:paddingLeft="15dp"
android:layout_x="163dp"
android:layout_y="620dp"
android:id="#+id/business" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="#+id/textView18"
android:padding="10dp"
android:text="Business Expenses"
android:textColor="#color/peru"
android:layout_alignParentTop="true"
android:layout_x="14dp"
android:layout_y="620dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="#+id/textView19"
android:padding="10dp"
android:text="Mileage"
android:textColor="#color/peru"
android:layout_alignParentTop="true"
android:layout_x="268dp"
android:layout_y="430dp" />
<EditText
android:layout_width="92dp"
android:layout_height="34dp"
android:layout_margin="10dp"
android:background="#drawable/round_corner_square"
android:layout_weight="0.07"
android:hint="RM"
android:inputType="numberDecimal"
android:paddingLeft="15dp"
android:layout_x="263dp"
android:layout_y="554dp"
android:id="#+id/toll" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="#+id/textView20"
android:padding="10dp"
android:text="Work Description"
android:textColor="#color/peru"
android:layout_alignParentTop="true"
android:layout_x="14dp"
android:layout_y="683dp" />
<CheckBox
android:layout_width="112dp"
android:layout_height="53dp"
android:text="outstation"
android:id="#+id/checkBox"
android:textColor="#color/peru"
android:layout_x="232dp"
android:layout_y="662dp"
android:checked="false" />
<CheckBox
android:layout_width="112dp"
android:layout_height="45dp"
android:text="Others?"
android:id="#+id/checkBox2"
android:layout_x="24dp"
android:textColor="#color/peru"
android:layout_y="92dp"
android:checked="false" />
<EditText
android:layout_width="296dp"
android:layout_height="wrap_content"
android:id="#+id/editText"
android:visibility="gone"
android:layout_x="27dp"
android:layout_y="133dp" />
</AbsoluteLayout>
</ScrollView>
Your problem is because you are using absolute_layout with layout_x and layout_y, so all views will be at your predefined positions of x and y, no matter what elements will you remove or what elements will you leave.
So, you have to change the layout parameters for the elements not just set it's visibility to VISIBLE or GONE, so the complete solution will be:
checkBox2.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
#Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if(isChecked){
typeProject.setVisibility(View.VISIBLE);
project.setVisibility(View.GONE);
ProjectName.setVisibility(View.GONE);
// now settings the new parameters
AbsoluteLayout.LayoutParams params = ((AbsoluteLayout.LayoutParams) typeProject.getLayoutParams());
params.x = 100; // the new value
params.y = 100; // the new value
typeProject.setLayoutParams(params);
}
else{
typeProject.setVisibility(View.GONE);
project.setVisibility(View.VISIBLE);
ProjectName.setVisibility(View.VISIBLE);
// use the same way here with 'project' and 'ProjectName'
}
});
Try with OnCheckedChangeListener:
checkBox2.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
#Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if(isChecked){
typeProject.setVisibility(View.VISIBLE);
project.setVisibility(View.GONE);
ProjectName.setVisibility(View.GONE);
}
else{
typeProject.setVisibility(View.GONE);
project.setVisibility(View.VISIBLE);
ProjectName.setVisibility(View.VISIBLE);
}
});
You should use OnCheckedChangeListener, rather than OnClickListener
Do this
checkBox2.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
#Override
public void onCheckedChanged(CompoundButton buttonView,boolean isChecked) {
if(isChecked)
{
typeProject.setVisibility(View.VISIBLE);
project.setVisibility(View.GONE);
ProjectName.setVisibility(View.GONE);
}
else
{
typeProject.setVisibility(View.GONE);
project.setVisibility(View.VISIBLE);
ProjectName.setVisibility(View.VISIBLE);
}
}
});

How to access views from the programatically inflated layouts?

I have an activity in which I have inflated another layout. OnClick of next destination I am getting inflated a new layout. Now I want to remove the inflated layout. So I want to access the linear layout of remove from inside inflated layout. How can I access this??
Layout looks like this :
I have achieved to inflate layout and remove the first destination from parent which is a part of parent layout. Now I want to do same with inflated destination layout. onClick of remove the inflated layout should get removed.
Next_destination layout
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:orientation="vertical"
android:layout_height="wrap_content"
android:layout_weight="1.00"
android:background="#android:color/white"
android:id="#+id/LinearAddedDestination">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="DESTINATION"
android:layout_marginStart="20dp"
android:layout_marginTop="20dp" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="40dp"
android:orientation="horizontal"
android:background="#drawable/shape"
android:gravity="right"
android:layout_gravity="center|right"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:layout_marginLeft="80dp"
android:id="#+id/remove">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#drawable/ic_clear_black_18dp"
android:layout_marginLeft="05dp"
android:layout_marginTop="05dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:text="REMOVE"
android:layout_gravity="center"
android:layout_marginLeft="05dp"
android:textSize="14sp"
android:layout_marginRight="15dp" />
</LinearLayout>
</LinearLayout>
<ImageView
android:layout_width="match_parent"
android:layout_height="08dp"
android:background="#drawable/line2"/>
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:layout_width="25dp"
android:layout_height="25dp"
android:layout_marginStart="20dp"
android:background="#drawable/ic_place_black_48dp"
android:layout_marginTop="05dp"
android:layout_gravity="center" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:drawableEnd="#drawable/ic_chevron_right_black_24dp"
android:layout_marginEnd="10dp"
android:text="#string/Loc"
android:layout_gravity="center"
android:layout_marginTop="05dp"
android:textAppearance="#android:style/TextAppearance.Medium"
android:cursorVisible="false"/>
</LinearLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:hint="Street/Building/Place"
android:layout_marginStart="48dp"/>
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:layout_width="25dp"
android:layout_height="25dp"
android:layout_marginStart="20dp"
android:background="#drawable/ic_description_black_48dp"
android:layout_marginTop="10dp" />
<EditText
android:layout_width="match_parent"
android:layout_height="45dp"
android:layout_marginEnd="10dp"
android:hint="#string/LocationDetails"/>
</LinearLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:layout_marginStart="48dp"
android:hint="#string/HouseDetails" />
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal">
<ImageView
android:layout_width="25dp"
android:layout_height="25dp"
android:layout_marginStart="20dp"
android:background="#drawable/ic_person_black_48dp"
android:layout_marginTop="05dp" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginEnd="10dp"
android:text="#string/additionalContact"
android:textAppearance="?android:attr/textAppearanceMedium"
android:drawableEnd="#drawable/ic_expand_more_black_24dp"
android:layout_marginTop="08dp"
android:layout_marginStart="05dp" />
</LinearLayout>
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="60dp"
android:layout_marginEnd="50dp"
android:layout_gravity="center"
android:visibility="gone"
android:layout_marginTop="20dp">
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:hint="Name"
android:layout_gravity="center"/>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:hint="Phone"
android:layout_gravity="center"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:text="#string/or"
android:layout_gravity="center"
android:layout_marginTop="20dp" />
<LinearLayout
android:layout_width="220dp"
android:layout_height="40dp"
android:background="#drawable/shape"
android:layout_gravity="center_horizontal">
<ImageButton
android:layout_width="20dp"
android:layout_height="20dp"
android:background="#drawable/phone2"
android:layout_gravity="center"
android:layout_marginStart="30dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:text="#string/addFromContacts"
android:layout_gravity="center"
android:layout_marginStart="20dp" />
</LinearLayout>
</LinearLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:layout_marginLeft="48dp"
android:hint="#string/contact1"
android:layout_marginTop="10dp" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:focusable="true"
android:focusableInTouchMode="true">
<ImageView
android:layout_width="25dp"
android:layout_height="25dp"
android:layout_marginStart="20dp"
android:background="#drawable/ic_description_black_48dp"
android:layout_marginTop="10dp" />
<EditText
android:layout_width="match_parent"
android:layout_height="45dp"
android:layout_marginEnd="10dp"
android:hint="Instruction"
android:layout_gravity="center"
android:layout_marginLeft="10dp" />
</LinearLayout>
</LinearLayout>
Activity from on which the layout is inflated.
View newDestination;
ViewGroup parent;
nextDestination.setOnClickListener(new View.OnClickListener() {
#Override
public void onClick(View v) {
removeDestination.setVisibility(View.VISIBLE);
newDestination = getLayoutInflater().inflate(
R.layout.next_destination_layout, addDestination, true);
}
});
removeDestination.setOnClickListener(new View.OnClickListener() {
#Override
public void onClick(View v) {
parent = (ViewGroup)destination.getParent();
parent.removeView(destination);
}
});
How to achieve this?? Please help...
{ ll.removeView(view)// to remove particular view
ll.removeViewAt(position);// to remove view from particular position
}

Categories

Resources