ccc_wb 2021-07-11 16:19 采纳率: 33.3%
浏览 128
已采纳

动态添加布局时addview报错?

在向另外一个Activity中的LinearLayout动态添加布局的时候,程序运行到addView会闪退,并且无法添加布局

 

public void new_tv(String message){
        LinearLayout.LayoutParams lparams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.WRAP_CONTENT);
        ll = (LinearLayout) findViewById(R.id.ll_todo);
        add_tv = new TextView(this);
        
        add_tv.setLayoutParams(lparams);
        add_tv.setText(message);
        add_tv.setTextColor(getResources().getColor(R.color.white));
        
        try {
            ll.addView(add_tv);
        }catch (Exception e){
            e.printStackTrace();
        }
    }

 

 

总代码

import android.app.ActionBar;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;

import androidx.appcompat.app.AppCompatActivity;

public class add_goal extends AppCompatActivity {
    private EditText et;
    private Button btn_send;
    private LinearLayout ll;
    private TextView add_tv;

    private String message;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.add_goal);

        et = (EditText) findViewById(R.id.input_message);
        btn_send = (Button) findViewById(R.id.btn_send);

        btn_send.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                message=et.getText().toString().trim();
                new_tv(message);
                startActivity(new Intent(add_goal.this,MainActivity.class));
                finish();
            }
        });

    }



    public void new_tv(String message){
        LinearLayout.LayoutParams lparams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.WRAP_CONTENT);
        ll = (LinearLayout) findViewById(R.id.ll_todo);
        add_tv = new TextView(this);

        add_tv.setLayoutParams(lparams);
        add_tv.setText(message);
        add_tv.setTextColor(getResources().getColor(R.color.white));

        try {
            ll.addView(add_tv);
        }catch (Exception e){
            e.printStackTrace();
        }
    }
}
  • 写回答

2条回答 默认 最新

  • 帅次 移动开发领域新星创作者 2021-07-13 11:50
    关注

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    //1、获取activity_view.xml中LinearLayout对象
    //2、也可以给LinearLayout添加@+id/,然后通过findViewById关联控件也能获取LinearLayout对象
    LinearLayout linearLayout =
    (LinearLayout)getLayoutInflater().inflate(R.layout.activity_view,null);
    //加载布局文件
    setContentView(linearLayout);
    EditText editText = new EditText(this);
    editText.setHint("请输入内容");
    linearLayout.addView(editText);
    }
    如有帮助麻烦采纳

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 已采纳回答 7月13日
  • 创建了问题 7月11日

悬赏问题

  • ¥170 如图所示配置eNSP
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改
  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥15 键盘指令混乱情况下的启动盘系统重装