- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 Activity,它有一个按钮,通过代码我画了一个 Circle,所以我的 Circle 类是:
public class Circle extends View {
private float x = 100;
private float y = 100;
private float radius = 50;
public Circle(Context context) {
super(context);
}
protected void onDraw(Canvas canvas){
Paint paint = new Paint();
canvas.drawCircle(x, y, radius, paint);
}
}
我的 Activity 代码是:
public class AnotherTest extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Circle c = new Circle(this);
setContentView(c);
}
}
但是当我调用 setContentView 时,按钮似乎被删除了。显示圆圈并保留按钮的任何提示?
最佳答案
您提到的按钮在您 Activity 的布局 XML 文件中?如果是这样,你能提供代码吗? setContentView() 只会显示圆圈。如果您想将圆圈添加到您现有的布局中,您必须将它添加到 Activity 的 XML 中的 ViewGroup。
你可以这样做:
public class AnotherTest extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.anothertest_activity);
}
}
(res/layout/)anothertest_activity.xml 文件可能如下所示:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout android:id="@+id/content"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:id="@+id/myButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<your.package.Circle
android:id="@+id/myCircle"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
在 Android Studio 中,xml 代码的正下方是两个选项卡:“设计”和“文本”。切换到“文本”以粘贴代码,切换回“设计”以定位您的元素。
如果拖动 View ,就会得到一个布局 XML 文件。在 Activity 中,您需要将此文件设置为您的内容 View ,否则您将看不到您的 View 。但是您可以通过执行以下操作来动态添加 View :
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout android:id="@+id/content"
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/my_viewgroup"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:id="@+id/myButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</RelativeLayout>
在您的 Activity 中:
public class AnotherTest extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Still your xml with your button but without circle
setContentView(R.layout.anothertest_activity);
// First find your ViewGroup to add Views to
RelativeLayout viewGroup = (RelativeLayout) findViewById(R.id.my_viewgroup);
// Add a new circle to existing layout
viewGroup.addView(new Circle());
}
}
您还可以动态添加所有内容:
public class AnotherTest extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ViewGroup viewGroup = new LinearLayout(this);
setContentView(viewGroup);
viewGroup.addView(new Button());
viewGroup.addView(new Circle());
}
}
但我强烈建议使用 xml 布局。可能想看看 Android Layouts
关于android - Android 中的 setContentView 和按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37470275/
我注意到 Activity 类有一个 setContentView 方法,可以在其中加载 xml 资源文件。我想对一个最终继承自 View 的类做同样的事情。这似乎是一条死胡同,因为 View 类不存
所以我尝试切换布局以获得一个非常简单的两页应用程序。但是,当我单击后退按钮时,setContentView 不起作用。有人知道为什么以及如何解决这个问题吗? 这是我的代码: public class
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 要求提供代码的问题必须表现出对所解决问题的最低限度的了解。包括尝试的解决方案、为什么它们不起作用以及预期结果
我正在尝试这个: setContentView(R.layout.activity_main); main 是我的菜单文件夹中的 main.xml ,但它在 activity_main 中向我显示错误
我搜索了一个小时 - 我找不到错误: public class favdetail extends Activity { @Override public void onCreate(
您好,我是对上一个问题的重新提问,只是因为我之前不清楚。我有一个 json 提要,我在其中找到了数组的长度。它应该产生一个。但我想要做的是,如果要添加第二个项目,则需要使用另一个布局。 所以我目前有一
我是 Android 环境的新手。出于某种原因,我在尝试构建时遇到错误。具体来说,activity_main.xml 布局文件中的这些类型被报告为未找到。但是,我确实在那里看到了它。我的环境似乎有些困
我最近收到了有关创建程序化 View 的问题。为什么所有的 View 都初始化好,所有的参数都设置好了,还要调用setContentView? 简单的例子: override fun onCr
要求 应用需求是当用户安装并首次打开时,会显示LoginActivity,登录成功后,会要求他输入4位passcode,将来使用,如果应用程序保持空闲并且手机被锁定。 设计 我决定将其设计为 One
请检查编辑。 val binding= DataBindingUtil.setContentView(this@MainActivity,R.layout.activity_main) 我收到以
有没有办法将字符串传递给“setContentView()”?即:setContentView(输出)。原因是我有一个用于多个 Activity 的类(自定义 ListView 适配器),我需要为一个
我有一个 MainActivity。有时在加载时我会观察到黑屏一秒钟。我测量了 onCreate 方法中的操作时间,发现 setContentView(R.layout.main_screen); 花
如果我的布局相同但资源发生变化,我可以多次调用 setcontentview 吗?例如,如果图像在 2 个 imageview 小部件中交换?(这实际上是我的应用程序中发生的所有事情) 最佳答案 您可
我的问题是是否可以在 Activity 的 onCreate() 方法中的 setContentView() 之前编写代码。在下面的代码中,我想在 setContentView() 之前调用 setV
在我的应用程序中有两个类,一个是 InternetActivity,它只扩展 Activity 并将 contentview 设置为 main。和扩展广播接收器的 MyClass。 我在 main.x
我正在尝试 android 网站上的第一个教程 here 目标是输入文本并将其传送到下一页以显示它。 但是,我总是收到“不幸的是,我的第一个应用已停止运行”。 我注意到当我注释掉 setContent
我的主要 Activity 是尝试从导入的包中调用方法。我已经在下面发布了调用和方法。我收到的错误消息是该行 setContentView(twitterSite); 我得到一个空点异常!
我今天在 android studio 中遇到了一个错误。我正在尝试在应用程序中创建一个关于我们的屏幕。布局 xml 文件已创建。任何帮助表示赞赏。谢谢。 错误:无法解析方法 setcontentvi
在我的主要 Activity 中,我想对其进行设置,以便我首先看到一个仅显示背景和一些文本的 contentView。 X 秒后,我想切换到另一个 View (GLSurfaceView)。 这显然是
有没有办法在一个 Activity 期间使用不同的 id 多次调用 setContentView(id) 以呈现不同的 View ,或者我是否必须启动一个新的 Activity? 最佳答案 根据 Au
我是一名优秀的程序员,十分优秀!