Android 如何在表行的一列中添加两个文本视图

Android 如何在表行的一列中添加两个文本视图,android,textview,Android,Textview,如何在表格行的一列中,在另一列的下方添加两个文本视图? 我试过的是 LinearLayout parentLastName = new LinearLayout(getActivity()); parentLastName.setLayoutParams(new TableRow.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.W

如何在表格行的一列中,在另一列的下方添加两个文本视图? 我试过的是

LinearLayout parentLastName = new LinearLayout(getActivity());


parentLastName.setLayoutParams(new TableRow.LayoutParams(
                ViewGroup.LayoutParams.MATCH_PARENT,
                ViewGroup.LayoutParams.WRAP_CONTENT));

parentLastName.setBackgroundResource(R.drawable.picked_ticket_border);

RelativeLayout layout = new RelativeLayout(getActivity());
RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
layout.setLayoutParams(layoutParams);


RelativeLayout.LayoutParams params1 = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);    
RelativeLayout.LayoutParams params2 = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
RelativeLayout.LayoutParams params3 = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
RelativeLayout.LayoutParams params4 = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);

/** Creating a TextView to add to the row **/
TextView mLastNameTV = new TextView(getActivity());
mLastNameTV.setText(routeOverviewDataList.get(i).getDeliveryLastName());
// mLastNameTV.setGravity(Gravity.CENTER | Gravity.CENTER_VERTICAL);
mLastNameTV.setId(i);
mLastNameTV.setTextColor(Color.BLACK);
mLastNameTV.setTypeface(DeliveredApp.sFontOpenSansRegular);
//mLastNameTV.setLayoutParams(new TableRow.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));

TextView test = new TextView(getActivity());
test.setText("sa");
test.setTextColor(Color.BLACK);
params2.addRule(RelativeLayout.BELOW, mLastNameTV.getId());

layout.addView(mLastNameTV, params1);
layout.addView(test, params2);
parentLastName.addView(layout);
mTableRow.addView(parentLastName);
但这只给了一个接近的力。我可以添加任何一个文本视图,这将显示顺利。是否可以在表行的一列中添加两个文本视图

日志


您不必添加两个文本视图,只需使用一个并将文本与“\n”连接即可:


您不必添加两个文本视图,只需使用一个并将文本与“\n”连接即可:


在单个文本视图中使用可单击的范围作为第二个文本,并使用可单击的范围字符串(单击“字符串”时在此处):


在单个文本视图中使用可单击的范围作为第二个文本,并使用可单击的范围字符串(单击“字符串”时在此处):


试试这个,也许对你有帮助

    LinearLayout parentLastName = new LinearLayout(getActivity());
    parentLastName.setOrientation(LinearLayout.VERTICAL);

    parentLastName.setBackgroundResource(R.drawable.picked_ticket_border);

    TableRow mTableRow= new TableRow(getActivity());
    TableRow.LayoutParams lp = new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT);
    mTableRow.setLayoutParams(lp);


    //** Creating a TextView to add to the row **//*
    TextView mLastNameTV = new TextView(getActivity());
    mLastNameTV.setText(routeOverviewDataList.get(i).getDeliveryLastName());
    // mLastNameTV.setGravity(Gravity.CENTER | Gravity.CENTER_VERTICAL);
    mLastNameTV.setTextColor(Color.BLACK);
    mLastNameTV.setTypeface(DeliveredApp.sFontOpenSansRegular);

    //mLastNameTV.setLayoutParams(new TableRow.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));

    TextView test = new TextView(getActivity());
    test.setText("sa");
    test.setTextColor(Color.BLACK);


    parentLastName.addView(mLastNameTV);
    parentLastName.addView(test);
    mTableRow.addView(parentLastName);
    tbl.addView(mTableRow);

试试这个,也许对你有帮助

    LinearLayout parentLastName = new LinearLayout(getActivity());
    parentLastName.setOrientation(LinearLayout.VERTICAL);

    parentLastName.setBackgroundResource(R.drawable.picked_ticket_border);

    TableRow mTableRow= new TableRow(getActivity());
    TableRow.LayoutParams lp = new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT);
    mTableRow.setLayoutParams(lp);


    //** Creating a TextView to add to the row **//*
    TextView mLastNameTV = new TextView(getActivity());
    mLastNameTV.setText(routeOverviewDataList.get(i).getDeliveryLastName());
    // mLastNameTV.setGravity(Gravity.CENTER | Gravity.CENTER_VERTICAL);
    mLastNameTV.setTextColor(Color.BLACK);
    mLastNameTV.setTypeface(DeliveredApp.sFontOpenSansRegular);

    //mLastNameTV.setLayoutParams(new TableRow.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));

    TextView test = new TextView(getActivity());
    test.setText("sa");
    test.setTextColor(Color.BLACK);


    parentLastName.addView(mLastNameTV);
    parentLastName.addView(test);
    mTableRow.addView(parentLastName);
    tbl.addView(mTableRow);

我需要单击第二个文本视图使用可单击范围使用可单击范围字符串。查看我的回答我需要单击第二个文本视图使用可单击的范围使用可单击的字符串。看看我的答案ParentLastName.setOrientation(LinearLayout.VERTICAL);如果是parentLastName.setOrientation(LinearLayout.HORIZONTAL),则不起作用;没问题,但我需要verticaly@VV您还可以删除
parentLastName.setLayoutParams
,因为您使用的是
newtableRow.LayoutParams
它不是
LinearLayout
params@VV
LinearLayout.VERTICAL
有什么问题?我不知道整个循环正在运行,它显示强制关闭,但我的代码中没有。强制关闭looper.java类。不显示任何日志,我认为这与项目无关,例外情况为parentlastname.setOrientation(LinearLayout.VERTICAL);如果是parentLastName.setOrientation(LinearLayout.HORIZONTAL),则不起作用;没问题,但我需要verticaly@VV您还可以删除
parentLastName.setLayoutParams
,因为您使用的是
newtableRow.LayoutParams
它不是
LinearLayout
params@VV
LinearLayout.VERTICAL
有什么问题?我不知道整个循环正在运行,它显示强制关闭,但我的代码中没有。强制关闭looper.java类。没有显示任何日志,我认为这不是与项目相关的异常
SpannableString ss = new SpannableString("Example string");
ss.setSpan(new ClickableSpan() {
    @Override
    public void onClick(View widget) {
        // Do what you need to do here when clicked    
    }
}, 8, ss.length, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
yourTextView.settext(ss);
yourTextView.setMovementMethod(LinkMovementMethod.getInstance());
    LinearLayout parentLastName = new LinearLayout(getActivity());
    parentLastName.setOrientation(LinearLayout.VERTICAL);

    parentLastName.setBackgroundResource(R.drawable.picked_ticket_border);

    TableRow mTableRow= new TableRow(getActivity());
    TableRow.LayoutParams lp = new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT);
    mTableRow.setLayoutParams(lp);


    //** Creating a TextView to add to the row **//*
    TextView mLastNameTV = new TextView(getActivity());
    mLastNameTV.setText(routeOverviewDataList.get(i).getDeliveryLastName());
    // mLastNameTV.setGravity(Gravity.CENTER | Gravity.CENTER_VERTICAL);
    mLastNameTV.setTextColor(Color.BLACK);
    mLastNameTV.setTypeface(DeliveredApp.sFontOpenSansRegular);

    //mLastNameTV.setLayoutParams(new TableRow.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));

    TextView test = new TextView(getActivity());
    test.setText("sa");
    test.setTextColor(Color.BLACK);


    parentLastName.addView(mLastNameTV);
    parentLastName.addView(test);
    mTableRow.addView(parentLastName);
    tbl.addView(mTableRow);