gpt4 book ai didi

android - 从 xml 创建自定义 View

转载 作者:搜寻专家 更新时间:2023-11-01 07:39:38 24 4
gpt4 key购买 nike

我想像这样添加相同的水平可滚动按钮行

<HorizontalScrollView [...]>
<LinearLayout [...] android:orientation="horizontal">
<Button android:id="@+id/btn1" [..] />
<Button [..] />
[...]
</LinearLayout>
</HorizontalScrollView>

(toolbar.xml) 到我应用程序中每个 Activity 的底部。不必为每个 Activity 中的每个按钮指定点击监听器,我希望能够在一个地方完成所有这些工作,然后每次只导入控件。我想我可以做类似的事情

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<com.example.ButtonBar android:layout_width="fill_parent"
android:layout_height="wrap_content" android:layout_alignParentBottom="true"
android:layout_below="@+id/pagecontent" />
<LinearLayout android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/pagecontent">

<!-- the rest of each activity's xml -->

</LinearLayout>

在屏幕上包含按钮栏,然后做类似的事情

package com.example;

import android.content.Context;
import android.content.Intent;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.HorizontalScrollView;

public class ButtonBar extends HorizontalScrollView implements OnClickListener
{

public ButtonBar(Context context, AttributeSet attrs)
{
super(context, attrs);
LayoutInflater inflater =
(LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = inflater.inflate(R.layout.toolbar, null);

Button btn1 = (Button) view.findViewById(R.id.button1);
btn1.setOnClickListener(this);

// and so on for the rest of the buttons

addView(View);
}

@Override
public void onClick(View v)
{
Intent intent = null;

if (v.getId() == R.id.btn1)
{
intent = new Intent(getContext(), FirstScreen.class);
}
else if (v.getId() == R.id.btn2)
{
intent = new Intent(getContext(), SecondScreen.class);
}
// and so on

if (intent != null) getContext().startActivity(intent);
}
}

然后呢?我实际上如何让它显示?还有其他我应该覆盖的方法吗?有更好/更合适的方法吗?

最佳答案

关于android - 从 xml 创建自定义 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5756642/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com