how to make a checkbox editable when clicked in android studio - java

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.

Related

How to create this Setting Layout in android?

I want to create a settting UI like this in android:
Questions:
How to create the layout? I believe it's a Vertical LinearLayout containing some of TextView with Divider set, is that right?
How to create sub-textview? (see the image above)
How to create a checkbox which aligned at right? (again, see the image above)
Look at the image above, the "Keypress popup" can be clicked and it will show up a dialog. How to create a clickable TextView? I have tried giving android:onClick on the TextView, but nothing happened when I clicked the TextView.
PreferenceActivity will help you to implement all these very easily. Go through this and this tutorials.
PreferenceFragment should be used post Honeycomb.

How to select text in an EditText and keep it selected on screen?

I use EditText as a TextView because I need to highlight some certain part of text and EditText is doing it great. Now, if I want to share this highlighted quote with ActionBarSherlock's ShareActionProvider it goes well - I can pick this text from EditText.
But if a user longpress the text - he can highlight it any way he want. But the only option is to do something with that - for example, copy this selection and selection disappears after that. What I want is to freely highlight the text and then share highlighted text which should be keeped highlighted.
When you longpress the EditText you can select text, but any action like "copy" takes off selection and text is not highlighted

How to access the button code from an included layout?

I had included the footer layout inside my home layout. The footer layout contains 3 buttons and it calls three methods in its corresponding footer class.
I am successfully able to display my footer layout on the home layout using the below include code.
<include layout="#layout/footer"/>
The problem i am facing is , the button clicks are not getting executed. It says no such method found exception.
How does the footer buttons can be accessed ?
You can also access it with Button b = (Button) findViewById(idOfButton)
android treats included layouts as if they were written inside the code, if your button has an id, it is reachable easily
you can access the button this way :
Button b = (Button) footerLayout.getChildAt(index);
and then you can attach at the button the handler that you prefer.

How to add toggle, switch button in WIDGET

I want to add toggle button and switch in app widget. How can I add them? I do not understand how to assign button id. Normaly we use FindViewById but what should I use in a widget?
Togglebutton a = (TB) FindViewById(R.ID.xyz)
I also added one text view widget and now I want when I click on it to update that TextView.
ToggleButton is not supported on widgets, use instead an ImageView (change image source dynamically).

Impossible to update the text of a textview in a RelativeLayout

I have a simple screen created in xml, the parent layout is a "relativelayout" and i have a child layout (who is also a "RelativeLayout" containing 3 textview inside).
the only thing I have to do is press a button and change the values ​​of textviews.
to change the text is obviously this:
MyTextView.SetText("Text");
the code runs perfectly, but does not refresh the text of the textviews in the layout.
but when the screen is rotated, the screen refreshes, and the label gets the correct value.
Why does this happen? Why when pressing the button I can not update the text?
I tried using "AsyncTask" and the text is not updated either.
Did something simple can be so problematic. ?
greetings.
Your code
MyTextView.SetText("Text");
Should be executed on UI thread to give effect say suppose if you want it to be updated after button click then this code should be inside your onClickButton listener of your button
Visit This Link for more details

Categories