如何在Android中使用自定义布局处理操作栏中的项目和标签事件?

福阿德

我有三种布局:1.calculate_actionbar_layout.xml 2.purchasemanager_actionbar_layout.xml 3.usermanagement_layout.xml

当我从操作栏中选择一个选项卡时,此选项卡的相关布局以及在操作栏中显示的项目。我想处理动作栏中的项目事件,例如当我单击加号图标时进行操作。

这是MainActivity:

public class MainActivity extends FragmentActivity implements             
TabListener,OnPageChangeListener,OnClickListener {

ViewPager viewpager;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

viewpager=(ViewPager)findViewById(R.id.pager);
viewpager.setAdapter(new customefragmentAdapterPager(getSupportFragmentManager()));
viewpager.setOnPageChangeListener(this);

ActionBar actionbar = getActionBar();
actionbar.setDisplayShowTitleEnabled(false);
actionbar.setDisplayUseLogoEnabled(false);
actionbar.setDisplayHomeAsUpEnabled(false);
actionbar.setDisplayShowCustomEnabled(true);
actionbar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
actionbar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
actionbar.setCustomView(R.layout.usermanagement_layout);

ImageView i=(ImageView) getActionBar().getCustomView().findViewById(R.id.imageviewadduser);
i.setOnClickListener(this);

ActionBar.Tab tab1=actionbar.newTab();
tab1.setTabListener(this);
tab1.setCustomView(R.layout.custom_tab);
View v=tab1.getCustomView();
TextView t=(TextView)v.findViewById(R.id.tab_title);
t.setText("محاسبه");

ActionBar.Tab tab2=actionbar.newTab();
tab2.setText("خریدها");
tab2.setTabListener(this);

ActionBar.Tab tab3=actionbar.newTab();
tab3.setText("کاربران");
tab3.setTabListener(this);

actionbar.addTab(tab1);
actionbar.addTab(tab2);
actionbar.addTab(tab3);

}


}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}

@Override
public void onTabSelected(Tab tab, FragmentTransaction ft) {
    // TODO Auto-generated method stub
    final ActionBar actionbar = getActionBar();
    switch (tab.getPosition()) {
    case 0:

        actionbar.setCustomView(R.layout.calculate_actionbar_layout);

        break;
    case 1:

        actionbar.setCustomView(R.layout.purchasingmanager_actionbar_layout);
        break;
    case 2:
        actionbar.setCustomView(R.layout.usermanagement_layout);
        break;
    default:
        break;
    }
    viewpager.setCurrentItem(tab.getPosition());
}

@Override
public void onTabUnselected(Tab tab, FragmentTransaction ft) {
    // TODO Auto-generated method stub

}
@Override
public int getCount() {
// TODO Auto-generated method stub
return 3;
}}

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
int id=v.getId();

int d=id;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
// TODO Auto-generated method stub


if(item.getItemId() == R.id.imageviewadduser){
    // ( 1 ) add a new item 
        // ( 2 ) change add to remove
}
else{
        // if a the new item is clicked show "Toast" message.
}

return super.onOptionsItemSelected(item);
}
}

所有布局都有此模板:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
android:orientation="horizontal"
android:background="#0d93d2"
android:weightSum="4"
android:gravity="center"
android:layout_gravity="fill_horizontal"
tools:context="MainActivity"
>
<ImageView
android:id="@+id/imageviewusermanagment"
android:layout_width="0sp"
android:layout_weight="2.5"
android:layout_height="wrap_content"
android:src="@drawable/usermanagment"
android:scaleType="fitStart"
android:paddingLeft="20sp"

 />
 <ImageView
android:id="@+id/imageviewdeleteuser"
android:layout_width="0sp"
android:layout_weight=".5"
android:layout_height="wrap_content"
android:src="@drawable/deleteuser"

 />



<ImageView
android:id="@+id/imageviewedituser"
android:layout_width="0sp"
android:layout_weight=".5"
android:layout_height="wrap_content"
android:src="@drawable/edituser"/>

<ImageView
    android:id="@+id/imageviewadduser"
android:layout_width="0sp"
android:layout_weight=".5"
android:layout_height="wrap_content"
android:src="@drawable/adduser"
     />

</LinearLayout>

以及我要处理的带有不同图标的所选标签的图像。您可以在以下链接中看到它们:

  1. 为自定义操作栏选择了usermanagement_layout.xml
  2. 为自定义操作栏选择了purchasemanager_actionbar_layout.xml
用户名

1-更改此功能:

@Override
public void onTabSelected(Tab tab, FragmentTransaction ft) {
    // TODO Auto-generated method stub
    final ActionBar actionbar = getActionBar();
    View cView=null;
    LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(
            LayoutParams.MATCH_PARENT,
            LayoutParams.MATCH_PARENT);
    switch (tab.getPosition()) {
    case 0:

         cView = getLayoutInflater().inflate(R.layout.calculate_actionbar_layout, null);
         cView.setLayoutParams(param);
         actionbar.setCustomView(cView);

        //actionbar.setCustomView(R.layout.calculate_actionbar_layout);

        break;
    case 1:

        cView = getLayoutInflater().inflate(R.layout.purchasingmanager_actionbar_layout, null);
        cView.setLayoutParams(param);
        actionbar.setCustomView(cView);

        //actionbar.setCustomView(R.layout.purchasingmanager_actionbar_layout);
        break;
    case 2:
         cView = getLayoutInflater().inflate(R.layout.usermanagement_layout, null);
         cView.setLayoutParams(param);
        actionbar.setCustomView(cView);

        //actionbar.setCustomView(R.layout.usermanagement_layout);
        break;
    default:
        break;
    }
    viewpager.setCurrentItem(tab.getPosition());
}

2-将and​​roid:onClick =“ onClick”添加到布局中的每个图像视图3-对此视图更改mainactivity userView = getLayoutInflater()。inflate(R.layout.usermanagement_layout,null);

    ImageView adduser=(ImageView) userView.findViewById(R.id.imageviewadduser);
    adduser.setOnClickListener(this);
    ImageView deleteuser=(ImageView) userView.findViewById(R.id.imageviewdeleteuser);
    deleteuser.setOnClickListener(this);
    ImageView edituser=(ImageView) userView.findViewById(R.id.imageviewedituser);
    edituser.setOnClickListener(this);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Java Web App中创建自定义标签?如何在JSP中使用自定义标签?

来自分类Dev

如何在Java Web App中创建自定义标签?如何在JSP中使用自定义标签?

来自分类Dev

如何在iOS标签栏中使用自定义字体

来自分类Dev

如何在材料设计中使用appCompat自定义上下文操作栏

来自分类Dev

Android在片段中使用AlertDialog和自定义布局

来自分类Dev

Android:自定义操作栏,如何使用整个宽度?

来自分类Dev

如何打开和关闭导航抽屉,单击Android中的自定义操作栏图标?

来自分类Dev

如何在Android中使用自定义布局制作Google加号按钮?

来自分类Dev

使用自定义栏时如何在标签中显示所有3个值?

来自分类Dev

如何在REST中处理自定义操作?

来自分类Dev

如何使用自定义操作栏?

来自分类Dev

如何在Yii2中使用自定义的CSS文件进行模块布局

来自分类Dev

如何在Android的Asynk任务中使用自定义进度栏

来自分类Dev

使用appcompat自定义操作栏布局

来自分类Dev

Django-如何在“ if”和“ else”检查中使用自定义模板标签?

来自分类Dev

如何在 xamarin 表单中使用按钮作为堆栈布局,以便我可以自定义它并处理文本位置和图像位置?

来自分类Dev

Android-如何布局和使用自定义视图?

来自分类Dev

如何在此使用Android布局和自定义GUI设计

来自分类Dev

如何在此使用Android布局和自定义GUI设计

来自分类Dev

如何在Django中使用自定义表单访问和处理数据

来自分类Dev

如何用Android中的自定义操作栏完全替换AppCompatActivity的操作栏?

来自分类Dev

如何在Android的自定义标题栏中添加菜单和设置选项?

来自分类Dev

如何在Windows 8中使用通过Microsoft键盘布局创建器创建的自定义键盘布局?

来自分类Dev

如何使用基本布局并在android中自定义

来自分类Dev

如何使用基本布局并在android中自定义

来自分类Dev

如何在Liferay 5.2.3中使用钩子创建自定义登录操作

来自分类Dev

创建自定义操作标签栏

来自分类Dev

(Android Studio)自定义操作栏布局未填充整个操作栏

来自分类Dev

如何在Flutter中实现自定义应用栏布局可滚动效果

Related 相关文章

  1. 1

    如何在Java Web App中创建自定义标签?如何在JSP中使用自定义标签?

  2. 2

    如何在Java Web App中创建自定义标签?如何在JSP中使用自定义标签?

  3. 3

    如何在iOS标签栏中使用自定义字体

  4. 4

    如何在材料设计中使用appCompat自定义上下文操作栏

  5. 5

    Android在片段中使用AlertDialog和自定义布局

  6. 6

    Android:自定义操作栏,如何使用整个宽度?

  7. 7

    如何打开和关闭导航抽屉,单击Android中的自定义操作栏图标?

  8. 8

    如何在Android中使用自定义布局制作Google加号按钮?

  9. 9

    使用自定义栏时如何在标签中显示所有3个值?

  10. 10

    如何在REST中处理自定义操作?

  11. 11

    如何使用自定义操作栏?

  12. 12

    如何在Yii2中使用自定义的CSS文件进行模块布局

  13. 13

    如何在Android的Asynk任务中使用自定义进度栏

  14. 14

    使用appcompat自定义操作栏布局

  15. 15

    Django-如何在“ if”和“ else”检查中使用自定义模板标签?

  16. 16

    如何在 xamarin 表单中使用按钮作为堆栈布局,以便我可以自定义它并处理文本位置和图像位置?

  17. 17

    Android-如何布局和使用自定义视图?

  18. 18

    如何在此使用Android布局和自定义GUI设计

  19. 19

    如何在此使用Android布局和自定义GUI设计

  20. 20

    如何在Django中使用自定义表单访问和处理数据

  21. 21

    如何用Android中的自定义操作栏完全替换AppCompatActivity的操作栏?

  22. 22

    如何在Android的自定义标题栏中添加菜单和设置选项?

  23. 23

    如何在Windows 8中使用通过Microsoft键盘布局创建器创建的自定义键盘布局?

  24. 24

    如何使用基本布局并在android中自定义

  25. 25

    如何使用基本布局并在android中自定义

  26. 26

    如何在Liferay 5.2.3中使用钩子创建自定义登录操作

  27. 27

    创建自定义操作标签栏

  28. 28

    (Android Studio)自定义操作栏布局未填充整个操作栏

  29. 29

    如何在Flutter中实现自定义应用栏布局可滚动效果

热门标签

归档