我有一个relativeLayout如下:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal"
android:id="@+id/parent" >
<ListView
android:layout_width="360dp"
android:layout_height="600dp"
android:id="@+id/list"
android:inputType="text"
android:maxLines="1"
android:layout_margin="50dp"
android:layout_alignParentRight="true"
/>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
在java代码中,我想在listview的左侧添加一个视图,但它没有用:
m_relativeLayout = (RelativeLayout)findViewById(R.id.parent);
RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);
layoutParams.addRule(RelativeLayout.LEFT_OF, m_listView.getId());
Button button2 = new Button(this);
button2.setText("I am button 2");
m_relativeLayout.addView(button2, layoutParams);
Run Code Online (Sandbox Code Playgroud)
只有当我将listview设置为alignParentRight时,它才会起作用.这是一个机器人的bug还是我错过了什么?
我总是尝试addView(View child, int index, LayoutParams params),但它可能只适用于线性布局.那么有一个正常的解决方案来完成RelativeLayout.LEFT_OF工作吗?
编辑
我曾尝试RelativeLayout.BELOW和RelativeLayout.RIGHT_OF,他们的工作完美,所以这意味着我没有足够的地方,以获得该按钮?我试图给予更多空间,但它仍然不起作用.
我使用东芝AT100(1280*800)和风景,所以空间足够.测试below和和.right一样left.我想如果我把一个控制器A放在relativelayout中,那么我在控制器A的左边添加控件B和decalare,结果应该是控件B将控件A推到右边,对吗?
在我的Android代码中,我给GUI充气并将所有子元素存储在不同的类中.在该类中,我想添加一个方法来读取用户输入.我尝试按照这个链接中的内容进行操作,但无论我做什么,它都归结为将最终值复制到非最终值.我虽然想创造另一个gui但是无法用这种方式来制作.这是我现在的方法:
private String setText(int id){
AlertDialog.Builder alert = new AlertDialog.Builder(this.show);
final EditText input = new EditText(this.show);
alert.setView(input);
String out;
alert.setPositiveButton("OK", new DialogInterface.OnClickListener() {
//@Override
public void onClick(DialogInterface dialog, int which) {
Editable value = input.getText();
out = value.toString();
// TODO Auto-generated method stub
}
});
}
}
Run Code Online (Sandbox Code Playgroud)
我用它来将一个字符串返回到另一个设置值的方法TextView.
我试着做以下几招:
private String setText(){
AlertDialog.Builder alert = new AlertDialog.Builder(this.show);
final EditText input = new EditText(this.show);
alert.setView(input);
String out;
alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int …Run Code Online (Sandbox Code Playgroud)