Button is not clickable in the Expandable ListView - java

I have Expandable listview Which contain button, When I click on button the click event is not triggering because button focus is set to false. First I have set button focus false in the xml layout and then based on the existing posts I have changed that and set focusable to false dynamically. But the in the two scenario's button is not clickable. I have tried setting focusable false after setting the onclickListener to the button in the getGroupView method method but the still the button is not click.. Any help Appriciated.

If the button is in the group row then
1. set Focusable true in your xml file for button
2.set focusable to false after setting the onClickListener for the button
3. and the important one is
in your grouprow.xml file try to set
android:descendantFocusability="blocksDescendants"
for the View group. This should work.

Related

Clear focus of BottomSheetDialog

I have a ListView in my layout. I have attached onItemClickListener for ListView to listen for item clicks. Whenever I will click on the item of it, a BottomSheetDialog will inflate. The problem is, that I want the content outside bottomsheetdialog to be clickable and scrollable. Whenever I inflate BottomSheetDialog, the content outside it becomes unresponsive. It doesn't respond to clicks, scroll etc. How can I make the content outside it to still be clickable and scrollable?

how to make a checkbox editable when clicked in android studio

im trying to make a to do list in android studio with checkboxes, the idea is to be able to add checkboxes to a linear layout every time i press a button. this is pretty simple but i want to be able to change the checkbox text when i click on it after ive created it.
i tried to make the text box with no text and just place a plain text beside it but i havent found a way to place both of them on the same line of the linear layout. the plain text just appears on the line underneath. i would like to know if theres any way to make a custom component that would make the checkbox text editable when clicked on the text and check the box when clicked on the check box itself that i could place it in the linear layout.
this is the code ive done to add another checkbox to the linear layout:
public void click(View v)
{
LinearLayout.LayoutParams lparams = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
CheckBox cb=new CheckBox(this);
cb.setLayoutParams(lparams);
cb.setText(t.getText());
this.ll.addView(cb);
}
Check the Checkbox what is it: Checkbox source
Now you know you have a "CompoundButton" , which is a Button if you look at the
source
which is a TextView if you check the source source
The EditText, which is used for editing texts it is a TextView if you check the source
So the parent it is a TextView and in your custom component you must combine the EditText added functions and values to your CheckBox. If you have time and you aren't lazy you can do it for sure, just extend the CheckBox and add the event and handling.
Solution ofered by BAHMAN is fast and simple ( but not enough elegant for me), if you want a quick result you can do that solution or based on that one:
Declare a View named "container" in .xml layout. At your code ( runtime ) first add the Checkbox. On the Click event remove the Checkbox ( if you arenn't added at .xml, but in code you can do it ) and add an Edit text, where you listen the finishing editting event. Then you remove the Edit text and put back the Checkbox. In this case you have not doubled the components and listeners.
Since it is a TODO list, can have many Checkboxes, I would choose the last solution offered by me. If you do an expensive, commercial product, than the first solution offered by me.
Instead of adding a check box to your layout you can add a horizontal linear layout or a custom view extending LinearLayout containing a CheckBox and an EditText at first set visibility of CheckBox to gone when user enters some text in EditText and presses Enter set CheckBox label equal to text of EditText then set visibility of EditText to gone and set Visibility of CheckBox to Visible. Again when a check box is clicked do similar job.
It is better for you to create a custom View (a class extending LinearLayout) and do above job in that class. and every time you need a new check box you can add this custom view to your layout instead of adding check box to your layout.

How to change the button with a spinner in actionbar to loading?

I have a webview and want to listen its loading event and I have a refresh button on my actionbar.
How to change the button to a spinner programmatically?
You can't magically change a button into a spinner. What you can do is disable the button and enable the spinner.
myButton.setEnabled(false);
mySpinner.setEnabled(true);
If you want to make the spinner take the place of the button, then you're going to have to put all of your layout drawing routine into a buildLayout() (or whatever you want to call it) and redraw the entire layout with a button or with a spinner, depending on the state of your application.

java radio buttons in jface automatically setting the first button to true

Here is a puzzler, every time I create a group of radio buttons in SWT/JFace, the first button is always true, but if create a standard button and call it to reset the radio button it will reset to being false.
I would like it to be set to false as default.
Has any encountered a problem like this and how to solve it?
Thanks in advance
When creating a group of radio buttons, exactly one from them HAS to be selected at a time. By selecting a different button, the first one becomes unselected. Therefor, if you set selected true to second radio button, the first will be unselected.
If you create a group of radio buttons, the first one is always selected by default. Use
secondRadioButton.setSelection(true);
to change the state...

Pressed Status propagation in Android

I have a layout with the following structure:
LinearLayout_1
ImageView
TextView
Linearlayout_2
ImageView
TextView
Some Views within LinearLayout_1 have padding and margins. I want to set a OnClickListener over LinearLayout_1 (for detecting clicks in the whole layout). But when its pressed I need all the items inside in pressed status. How can I do that? Thanks
Found a solution. The key is to use
android:duplicateParentState="true"
in the childs of the View where the clicks are listened

Categories