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.
Related
I am new to Android development and have created a new project with the ‘Bottom Tab Navigation’, unlike the blank activity where I get a java class and a layout activity and to put Buttons in the onCreate method the HomeFragment and HomeViewModel doesn’t have any of those fields. I want to add a few buttons And Image Views to them...Cam anyone please help me by telling where to put code like private Button xyz; and then xyz=findViewById()
You can add image and title in bottom navigation bar by going inside this path
res/menu/ bottom_navigation_menu.xml
You don't need to create the object of these buttons and texts. but if you want to access these items then define BottomNavigationView by findViewById() then call below method on this object.
BottomNavigationView.OnNavigationItemSelectedListener()
You need to implement onNavigationItemSelected inside this which will give you the ID's of all bar menus. I hope this will help.
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.
I'm working on scrollView.i have created 20 buttons under Linear Layout inside ScrollView. Now I'm writing the text inside button, I used android:padding_centre-verticle="1dp", but it's fetching warning massage that it can be used only above api level 26.I have to write text inside button centre. Is there other solution.
Thanks
You can use gravity="center_vertical"
Make sure your are not using layout_gravity
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.
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