gpt4 book ai didi

android - 如何在android中自动增加动态创建的TextView的高度?

转载 作者:行者123 更新时间:2023-11-30 02:36:36 27 4
gpt4 key购买 nike

我正在根据 Tableleyout 中放置的列表数据动态创建 textView我已经为 TextView 提供了固定的高度宽度。现在想增加该 TextView 的高度我使用了以下代码 fragment 来实现这一点

1. LayoutParams params = textView.getLayoutParams();
params.height = 70;
textView.setLayoutParams(params);


2. TextView textView = (TextView)findViewById(R.id.text_view);
ViewGroup.LayoutParams params = textView.getLayoutParams();
params.height = ViewGroup.LayoutParams.WRAP_CONTENT;
textView.setLayoutParams(params);

但在 params.height 行给我空指针异常

我的代码

private void buildStkLstTable(List<StockDetails> stkList) {
int count = 0;
TableFormat tf = new TableFormat();
String stkItemNm = Constants.Common.STR_BLNK;
String stkItemId = Constants.Common.STR_BLNK;
String avlQty = Constants.Common.STR_BLNK;

// Show in Table format
for (StockDetails stk : stkList) {

stkItemNm = stk.getStkItemNm();
stkItemId = stk.getMstStkItemId();
avlQty = String.valueOf(stk.getAvlQty());
defQty = String.valueOf(stk.getDefQty());
stkGrpId = stk.getMstStkGrpId();

// Create the table row
tr = new TableRow(this);
tr.setId(1000 + count);
tr.setLayoutParams(new LayoutParams(100, 100));

// 0th coll
lblHStkItmId = new TextView(this);
int id = 100 + count;
String text = stkItemId;
tf.setTblDataLbl(lblHStkItmId, id, text);
tf.setTblDataLblFrmt(lblHStkItmId, Constants.TableFormat.VIEW_WIDTH_0, Constants.TableFormat.VIEW_HEIGHT_0,
Constants.TableFormat.GRAVITY_C);
tr.addView(lblHStkItmId);

// 1st coll
lblStkNm = new TextView(this);
int lblStkNmId = 200 + count;
String lblStkNmTxt = stkItemNm;
tf.setTblDataLbl(lblStkNm, lblStkNmId, lblStkNmTxt);
tf.setTblDataLblFrmt(lblStkNm, Constants.TableFormat.VIEW_WIDTH_160, Constants.TableFormat.VIEW_HEIGHT, Constants.TableFormat.GRAVITY_L);
tr.addView(lblStkNm);

// 2 nd coll
ordrQty = new EditText(this);
int ordrQtyId = 300 + count;
String ordrQtyHnt = "Qty";
String ordrQtyText = Constants.Common.STR_BLNK;
tf.setTblDataEdit(ordrQty, ordrQtyId, ordrQtyText);
tf.setTblDataEditFrmt(ordrQty, Constants.TableFormat.VIEW_WIDTH_100, ordrQtyHnt, Constants.TableFormat.GRAVITY_R,
InputType.TYPE_CLASS_NUMBER, maxLength);
tr.addView(ordrQty);


// finally add this to the table row
tblOrdrPrdData.addView(tr, new TableLayout.LayoutParams(100, 100));
count++;
}
}

public class TableFormat extends Activity{
public void setTblDataLblFrmt(TextView lbl, int width, int height, int gravity) {
lbl.setPadding(Constants.TableFormat.PADDING_2, Constants.TableFormat.PADDING_0, Constants.TableFormat.PADDING_5,
Constants.TableFormat.PADDING_0);
lbl.setTextColor(Color.BLACK);
lbl.setWidth(width);
LayoutParams params = lbl.getLayoutParams();--- here i used above mentioned code snippet
params.height = LayoutParams.WRAP_CONTENT;
lbl.setLayoutParams(params);
//lbl.setHeight(height);
lbl.setGravity(gravity);
lbl.setTextSize(tfContext.getResources().getDimensionPixelSize(R.dimen.textDataSize));
lbl.setTypeface(Typeface.SANS_SERIF, Typeface.BOLD);

}
}

日志猫::

10-18 14:19:49.721: E/AndroidRuntime(3337): FATAL EXCEPTION: main
10-18 14:19:49.721: E/AndroidRuntime(3337): java.lang.NullPointerException
10-18 14:19:49.721: E/AndroidRuntime(3337): at com.xxxxx.common.utils.TableFormat.setTblDataLblFrmt(TableFormat.java:78)
10-18 14:19:49.721: E/AndroidRuntime(3337): at com.xxxxx.activity.OrderProductActivity.buildStkLstTable(OrderProductActivity.java:439)
10-18 14:19:49.721: E/AndroidRuntime(3337): at com.xxxxx.activity.OrderProductActivity.onItemSelected(OrderProductActivity.java:257)
10-18 14:19:49.721: E/AndroidRuntime(3337): at android.widget.AdapterView.fireOnSelected(AdapterView.java:895)
10-18 14:19:49.721: E/AndroidRuntime(3337): at android.widget.AdapterView.access$200(AdapterView.java:50)
10-18 14:19:49.721: E/AndroidRuntime(3337): at android.widget.AdapterView$SelectionNotifier.run(AdapterView.java:863)
10-18 14:19:49.721: E/AndroidRuntime(3337): at android.os.Handler.handleCallback(Handler.java:615)
10-18 14:19:49.721: E/AndroidRuntime(3337): at android.os.Handler.dispatchMessage(Handler.java:92)
10-18 14:19:49.721: E/AndroidRuntime(3337): at android.os.Looper.loop(Looper.java:137)
10-18 14:19:49.721: E/AndroidRuntime(3337): at android.app.ActivityThread.main(ActivityThread.java:4960)
10-18 14:19:49.721: E/AndroidRuntime(3337): at java.lang.reflect.Method.invokeNative(Native Method)
10-18 14:19:49.721: E/AndroidRuntime(3337): at java.lang.reflect.Method.invoke(Method.java:511)
10-18 14:19:49.721: E/AndroidRuntime(3337): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1038)
10-18 14:19:49.721: E/AndroidRuntime(3337): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:805)
10-18 14:19:49.721: E/AndroidRuntime(3337): at dalvik.system.NativeStart.main(Native Method)

在 TableFormat.java:78 处出现错误,请帮助解决

最佳答案

试试这个:

 // 0th coll
lblHStkItmId = new TextView(this);

int id = 100 + count;
String text = stkItemId;
tf.setTblDataLbl(lblHStkItmId, id, text);
tf.setTblDataLblFrmt(lblHStkItmId, Constants.TableFormat.VIEW_WIDTH_0, Constants.TableFormat.VIEW_HEIGHT_0,
Constants.TableFormat.GRAVITY_C);

现在你的 params 不会是 null

  public class TableFormat extends Activity{
public void setTblDataLblFrmt(TextView lbl, int width, int height, int gravity) {
lbl.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.WRAP_CONTENT)); // here set the layoutparam
lbl.setPadding(Constants.TableFormat.PADDING_2, Constants.TableFormat.PADDING_0, Constants.TableFormat.PADDING_5,
Constants.TableFormat.PADDING_0);
lbl.setTextColor(Color.BLACK);
lbl.setWidth(width);
ViewGroup.LayoutParams params = lbl.getLayoutParams();
params.height = 200; // put the height value you want
lbl.setLayoutParams(params);
//lbl.setHeight(height);
lbl.setGravity(gravity);
lbl.setTextSize(tfContext.getResources().getDimensionPixelSize(R.dimen.textDataSize));
lbl.setTypeface(Typeface.SANS_SERIF, Typeface.BOLD);

}
}

关于android - 如何在android中自动增加动态创建的TextView的高度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26437939/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com