让我先说一下我的问题,说我在Android应用程序中创建动态按钮已经做了很多研究,而且大多数都是错误的,或者与我有不同的动态视图。如果我错过了什么,那么只需发布链接,我就会检查出来。
我正在寻找的是根据我从互联网资源收集的信息在我的应用中创建按钮的方法。例如,当有人在我想看的论坛上创建帖子时,应用程序会找到它,为我解析它,并返回一些信息。由于我无法在显示的每个帖子的屏幕上显示所有这些信息,因此我想动态创建一个预览此信息的按钮。例如用户名,日期和简短描述(作为预览,通过点击,将在单独的活动中提供所有信息)。为了这篇文章,我们假装从文本输入位置(而不是来自实际的实习论坛帖子)获取此信息。
首先,如何动态创建按钮?我的另一半问题对我来说不那么重要。我想以编程方式执行此操作。教程链接很棒。
其次,不太重要......一旦我动态创建了这个按钮,我怎样才能根据可预测的格式获得按钮的自定义视图。
如果有什么不清楚的地方,请问,我会尽力澄清。谢谢你的帮助!
答案 0 :(得分:1)
在我看来,正确的方法是使用Adapter将数据映射到特定视图(在您的情况下为按钮)。
您选择的适配器取决于您决定从互联网上获取和存储数据的方式。
当有新帖子时,你会将它们添加到数据源(数据库,列表等等),你将调用notifyDataSetChanged来刷新列表,动态创建尽可能多的视图需要显示所有数据。
答案 1 :(得分:0)
我认为这可以回答你的问题。我的想法是以编程方式创建一个按钮,然后将其添加到当前布局中。 Somethiug是这样的:
Button newButton = new Button(this);
newButton.setText("Click Me");
newButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
...
}
});
container.addView(newButton);
容器是将按住按钮的布局(即将成为它的父级)。如果需要,您还可以将布局设置添加到按钮。
答案 2 :(得分:0)
好吧,您可以创建一个新的Button
,并将onClickListener
设置为:
Button button = new Button(context);
button.setText("New Button");
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
}
});
如果您还需要设置其他任何内容,例如ID,则可以根据需要调用该方法。然后,您需要将其添加到布局中:
LinearLayout layout = (LinearLayout)findViewById(R.id.linearLayout);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);
button.setLayoutParams(params);
layout.addView(button);
当然有更多你可以用它来做,但这应该让你开始,你需要的任何其他东西你应该能够通过阅读文档找到。
如果您需要更具体的帮助,那么只需发表评论,我将尝试详细说明。