Есть ли простой способ добавить кнопку на панель действий для дочернего действия? - PullRequest
3 голосов
/ 05 июля 2019

Я пытаюсь добавить кнопки на панель действий в приложении-студии Android для дочернего действия, но мне удается добавить его только в основное действие. Кто-нибудь знает, как я могу это сделать?

Я бы хотел, чтобы кнопка «ОК» была там, где я нарисовал ее оранжевым цветом.

Основная активность с панелью действий. main activity with action bar

активность детей с панелью действий child activity with action bar

Ответы [ 3 ]

1 голос
/ 05 июля 2019

Вы должны создать меню для вашей деятельности:

Внутри res -> меню выбрать новый -> Ресурс менюfile New Menu resource file

В своем новом XML-файле меню напишите следующее:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
    <item
        android:id="@+id/menu_action_ok"
        android:title="Ok"
        app:showAsAction="ifRoom" />
</menu>

По сути, вы создаете меню с параметром с именем 'Хорошо, но вы можете иметь больше вариантов, если вам нужно.Вы также можете настроить вид этой опции, если хотите:

app:actionLayout="@layout/filter_ka"

В родительской активности:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu.
    getMenuInflater().inflate(R.menu.menu_test, menu);
    return true;
}

R.menu. menu_test - этоимя вашего файла меню.

Наконец, чтобы получить щелчок по опциям вашего меню, вы должны переопределить следующую функцию:

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    int id = item.getItemId();


    if (id == R.id.menu_action_ok) {
        //Your code
        return true;
    }
    return super.onOptionsItemSelected(item);
}

Теперь у вас должно быть меню, подобное этому:

enter image description here

1 голос
/ 05 июля 2019

Вы должны создать меню для этого.Предположим, вы создаете add_menu

<?xml version="1.0" encoding="utf-8"?>
<menu
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">

    <item
        android:id="@+id/action_add"
        android:title="ADD"
        app:showAsAction="ifRoom"/>

</menu>

После создания меню наведите его на активность вашего ребенка, используя следующую команду.

   @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.add_menu, menu);
        return true;
    }
1 голос
/ 05 июля 2019

Вам не нужно использовать панель действий. Вы можете использовать только вид, цвет фона которого вы хотите. После того, как вы установите кнопку над цветной областью.

В Android Studio:

Значения> Стили

Используйте это:

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">

вместо

 <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">

Вернуться к вашему макету:

// Change your background with LinearLayout's background propoerty
   <LinearLayout
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:orientation="horizontal"

       android:background="#FFA908"


       >


       // You can put here whatever you want. İf you wish image or button.



       <Button
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:text="Example"
           android:layout_gravity="center"
           android:layout_marginLeft="200dp"
           />

       <Button
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:text="Example"
           android:layout_gravity="center"
           />



   </LinearLayout>

Если вы можете использовать как это. Вам не нужно использовать панель действий. И Вы можете легко создавать все, что хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...