从另一个xml文件定义

时间:2019-02-22 12:58:18

标签: android android-fragments

我正在创建一个使用导航抽屉的应用程序。但是,我使用的导航抽屉布局或设计来自其他XML文件,而不是位于MainActivity上。我在使用的布局中有一个图像,希望在MainActivity上用作SetOnClickListener。但是我不知道如何定义MainActivity中单独XML文件中的图像。

2 个答案:

答案 0 :(得分:0)

在您的情况下,您有2个不同的XML文件(布局文件)

  1. 主要活动

  2. 导航抽屉

每个布局文件必须具有自己的java类才能访问视图对象。

但是,如果您没有用于导航抽屉的其他Java类,请使用LayoutInflater将XML布局充气到视图中,然后可以将侦听器设置为所需的任何视图

在主要活动中添加:

LayoutInflater inflater = (LayoutInflater)context.getSystemService
(Context.LAYOUT_INFLATER_SERVICE);

View rootView = li.inflate(R.layout.my_navigation_drawer_layout,null,false);

注意*用my_navigation_drawer_layout替换您的布局文件名

现在您可以声明图像视图并使用我们之前创建的rootView中的findViewById

final ImageView img = (ImageView) rootView.findViewById(R.id.myImageViewName)

现在您可以将侦听器设置为img:

img.setOnClickListener(new View.OnClickListener()
    {
        @Override
        public void onClick(View v)
        {
            // write your code here!!!
        }
    });

答案 1 :(得分:0)

在MainActivity类的XML上使用<include>标记很容易做到

<include 
 android:layout = "YOUR LAYOUT OF THE NAVIGATION"/>