我仍然是Android开发的新手,我还没有找到任何如何做到这一点的例子。
在我的Activity中,我使用“setContextView(new myViewClass)”将View-extended类指定为要加载的类。在加载视图方面一切正常,我根据许多条件创建各种元素(LinearLayouts,按钮等)。不幸的是,我无法将这些元素中的任何元素实际显示在屏幕上。
我想我的问题是对Views的更好理解。我看到的所有示例都涉及将xml文件设置为基本视图,然后在代码中对其进行更改。有没有替代方案?
感谢。
这是我一直在努力工作的示例代码。还有其他事情正在发生,但这是相关信息。对于程序上下文,此类由setContextView(new createView(this))
:
public createView(Context c){
super(c);
// Create a simple layout
LinearLayout layout = new LinearLayout(top.getContext());
layout.setOrientation(LinearLayout.VERTICAL);
// Create test text
TextView mTestText = new TextView(c);
mTestText.setText("This is a test");
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.FILL_PARENT,
LinearLayout.LayoutParams.WRAP_CONTENT);
lp.setMargins(10, 10, 10, 10);
layout.addView(mTestText, lp);
}
答案 0 :(得分:1)
我认为问题在于您没有将布局添加到 CreateView 。但是,查看类没有添加方法(请参阅http://developer.android.com/reference/android/view/View.html)。
由于 LinearLayout 是扩展视图的基本视图,因此您可以扩展 LinearLayout ,并将 TextView 添加到扩展类中。如果你这样做,你的 CreateView 类可能看起来像这样:
/**
* Since the LinearLayout is the base layout, we'll extend it.
*/
public class CreateView extends LinearLayout {
public CreateView(Context context) {
super(context);
setOrientation(LinearLayout.VERTICAL);
TextView mTestText = new TextView(context);
mTestText.setText("This is a test");
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.FILL_PARENT,
LinearLayout.LayoutParams.WRAP_CONTENT);
lp.setMargins(10, 10, 10, 10);
addView(mTestText, lp);
}
}