我有一段代码将我的xml值解析为我的android活动,我需要以编程方式在两个文本视图中以水平方向显示解析的xml值,每个textview的值应该是垂直方向。我以非结构化的方式获得了textviews。我需要以结构化的方式显示文本视图。任何人都可以帮我解决这个问题。 例如,对于非结构化输出:
flag
false
id
0
我需要像
这样的输出 flag false
id 0
我创建了像这样的文本视图
private void createTextView(String text, LinearLayout root, int textSize,
int width, int height, int gravity) {
TextView textView = new TextView(context);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(width,
height);
if (gravity == Gravity.RIGHT) {
params.setMargins(300, 0, 0, 0);
}
if (gravity == Gravity.LEFT) {
params.setMargins(150, 0, 0, 0);
}
if (gravity == Gravity.CENTER) {
params.setMargins(20, 5, 0, 5);
}
textView.setLayoutParams(params);
textView.setText(text);
textView.setTextSize(textSize);
textView.setGravity(params.gravity);
textView.setTextColor(context.getResources().getColor(
android.R.color.black));
root.addView(textView);
}
private void createTextViewsWithHorizontalOrient(String textOne,
String textTwo, LinearLayout root) {
LinearLayout horizontalLinearLayout = new LinearLayout(context);
LinearLayout horizontalNextLinearLayout = new LinearLayout(context);
horizontalLinearLayout.setOrientation(LinearLayout.VERTICAL);
horizontalLinearLayout.setLayoutParams(new LinearLayout.LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
horizontalNextLinearLayout.setOrientation(LinearLayout.VERTICAL);
horizontalNextLinearLayout
.setLayoutParams(new LinearLayout.LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
horizontalNextLinearLayout.setGravity(Gravity.TOP);
horizontalLinearLayout.setGravity(Gravity.TOP);
createTextView(textOne, horizontalLinearLayout, 18,
android.widget.LinearLayout.LayoutParams.WRAP_CONTENT,
android.widget.LinearLayout.LayoutParams.WRAP_CONTENT,
Gravity.LEFT);
createTextView(textTwo, horizontalNextLinearLayout, 18,
android.widget.LinearLayout.LayoutParams.WRAP_CONTENT,
android.widget.LinearLayout.LayoutParams.WRAP_CONTENT,
Gravity.RIGHT);
root.addView(horizontalLinearLayout);
root.addView(horizontalNextLinearLayout);
}
我在方法创建textview更改布局参数
中得到了解决方案 private void createTextView(String text, LinearLayout root,
int textSize,int width, int height, int gravity) {
TextView textView = new TextView(context);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(100,
height);
createTextView(textTwo, horizontalNextLinearLayout, 18,
android.widget.LinearLayout.LayoutParams.WRAP_CONTENT,
android.widget.LinearLayout.LayoutParams.WRAP_CONTENT,
Gravity.LEFT);
答案 0 :(得分:0)
首先,您的命名约定很糟糕。您有 horizontalLinearLayout ,其方向设置为垂直。
其次,我假设您的根视图是具有垂直方向的LinearLayout。所以很明显,你得到了这个输出。你应该做的是创建一个水平方向的_ horizontalLinearLayout 。然后在其中放入两个textView,但您需要使用第二个TextView的边距。
最后,如果我是你,我会为一行创建单独的布局文件(所以水平LinearLayout有两个textViews)。然后你得到所有的XML定位,而不是代码。添加布局以查看:
View onewRow = activity.getLayoutInflater().inflate(R.layout.one_row, null, false);
TextView tv1 = onewRow.findViewById(R.id.textView1);
TextView tv2 = onewRow.findViewById(R.id.textView2);
tv1.setText("Flag");
tv2.setText("Your value");
root.addView(onewRow);