Android 以编程方式将项添加到相对布局
我有一个具有以下xml的相对布局:Android 以编程方式将项添加到相对布局,android,android-layout,android-relativelayout,Android,Android Layout,Android Relativelayout,我有一个具有以下xml的相对布局: <RelativeLayout android:id="@+id/date_bar_layout" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_below="@+id/navigation_bar_layout" android:background="@color/light_gray
<RelativeLayout
android:id="@+id/date_bar_layout"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/navigation_bar_layout"
android:background="@color/light_gray"
android:gravity="center">
<TextView
android:id="@+id/detaildatetextview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text=""
android:textColor="@color/black"
android:textSize="20dp"
android:textStyle="bold" />
</RelativeLayout>
我不知道我哪里出了问题请帮我摆脱困境。提前感谢…:-)您需要为正在添加的视图设置布局参数,以将其放置在相对布局中,否则它将重叠在布局中的左俯视图上,因此不要使用addView(view)方法将视图添加到布局中。因此,请将代码更改为以下内容:
image = new ImageView(getApplicationContext());
image.setId(0);
dateText = (TextView) dateBarLayout.findViewById(R.id.detaildatetextview);
dateText.setText("Dummy text");
RelativeLayout.LayoutParams params = (LayoutParams) dateBarLayout.getLayoutParams();
params.addRule(RelativeLayout.LEFT_OF, dateText.getId());
String icon = "drawable/"+ path;
icon = icon.replaceAll("-", "_");
icon = icon.toLowerCase();
int imageResource = this.getApplicationContext().getResources().getIdentifier(icon, null,this.getApplicationContext().getPackageName());
image.setImageResource(imageResource);
dateBarLayout.addView(image, params);
在
setcontentview(R.layout.main)之后将以下代码添加到java文件中代码>,它将解决您的问题
ImageView image = new ImageView(this);
RelativeLayout dateBarLayout=(RelativeLayout)findViewById(R.id.date_bar_layout);
TextView dateText = (TextView) dateBarLayout.findViewById(R.id.detaildatetextview);
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
params.addRule(RelativeLayout.LEFT_OF, dateText.getId());
image.setLayoutParams(params);
image.setImageResource(R.drawable.ic_launcher);
dateBarLayout.addView(image);
xmlns:tools=”http://schemas.android.com/tools"
android:layout\u width=“匹配父项”
android:layout\u height=“match\u parent”>
mainActivity.java
package com.example.textboxonclick;
导入android.app.Activity;
导入android.os.Bundle;
导入android.view.view;
导入android.widget.EditText;
导入android.widget.RelativeLayout;
公共类MainActivity扩展了活动{
私人亲戚;
私有编辑文本myEditText;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ln=(相对长度)findViewById(R.id.Rl);
}
公共无效添加按钮(视图v){
myEditText=新编辑文本(此);
Rl.addView(myEditText);
}
}
是否要将图像和图像顶部显示为文本?否,我要先显示图像,然后显示文本…用简单的文字从左到右显示图像,然后显示文本。@UsamaSarwar请查看我的答案,这将解决您的问题。请在答案中添加一些文本。为了解决问题中的问题,您在代码中做了哪些更改?你能用几句话解释一下为什么这是必要的吗?亲爱的,这很简单,我们在相对版面中有一个按钮,点击这个按钮就可以在相对版面中添加编辑文本。
ImageView image = new ImageView(this);
RelativeLayout dateBarLayout=(RelativeLayout)findViewById(R.id.date_bar_layout);
TextView dateText = (TextView) dateBarLayout.findViewById(R.id.detaildatetextview);
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
params.addRule(RelativeLayout.LEFT_OF, dateText.getId());
image.setLayoutParams(params);
image.setImageResource(R.drawable.ic_launcher);
dateBarLayout.addView(image);
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<RelativeLayout
android:id="@+id/Rl"
android:layout_width="match_parent"
android:layout_height="wrap_content"
>
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dip"
android:gravity="left"
android:onClick="addAddbutton"
android:text="add"
android:visibility="visible" />
</RelativeLayout>
</RelativeLayout>
mainActivity.java
package com.example.textboxonclick;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.RelativeLayout;
public class MainActivity extends Activity {
private RelativeLayout Rl;
private EditText myEditText;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ln = (RelativeLayout) findViewById(R.id.Rl);
}
public void addAddbutton(View v) {
myEditText = new EditText(this);
Rl.addView(myEditText);
}
}