java - 添加动态 TextView

标签 java android

尝试创建笔记应用程序。我试图在单击按钮后添加动态 TextView ,它应该一个接一个地添加到布局中。在我的代码中,只有一个 TextView 成功添加,但从第二次开始,应用程序崩溃了。请帮忙

XML 代码:

   <EditText
        android:id="@+id/text_thingsToDo"
        android:layout_width="@dimen/ThingsToDo_EditText_Width"
        android:layout_height="@dimen/ThingsToDo_EditText_Height"
        android:layout_margin="@dimen/Standardize_Margin"
        android:background="@color/ThingsToDo_EditText_Color"/>

    <Button
        android:id="@+id/save_thingsToDo"
        android:layout_toRightOf="@+id/text_thingsToDo"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/ThingsToDo_Save_Button_Text"
        android:layout_marginRight="@dimen/Standardize_Margin"
        android:layout_marginTop="@dimen/Standardize_Margin"
        android:layout_marginBottom="@dimen/Standardize_Margin"
        android:background="@color/ThingsToDo_Save_Button"
        android:textColor="@color/White"
        android:layout_centerVertical="true"/>

Java 代码:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_things_to_do);

    final EditText editText = (EditText) findViewById(R.id.text_thingsToDo);
    Button button = (Button) findViewById(R.id.save_thingsToDo);
    final TextView notesView = new TextView(this);
    final LinearLayout linearLayout = (LinearLayout) findViewById(R.id.rootView_ThingsToDo);
    final ArrayList<String> arrayList = new ArrayList<String>();

    button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            notesView.setText(editText.getText().toString());
            linearLayout.addView(notesView);
        }
    });

}

最佳答案

也许每次按下按钮时都会创建一个新的 TextView?尝试将 TextView 声明为类成员,然后在您的 OnClickListener 中执行以下操作:

button.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        notesView = new TextView(this);
        notesView.setText(editText.getText().toString());
        linearLayout.addView(notesView);
    }
});

希望这能解决您的问题!

关于java - 添加动态 TextView ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47917351/

相关文章:

java - 如何检测 long 类型是否真的为 NULL?

java - CXF 或 Spring WS 的目的是什么

java - 在 JSP 文件中调用 java 方法

java - Android 可空和非空 : Method invocation 'getSearchableInfo' may produce 'NullPointerException'

java - 应用程序已停止-Android studio

java - 部署到 tomcat 进行测试的最简单方法,我将 .war 文件保存到哪个文件夹?

java - 当比较两个类型和值完全相同的数字时,java如何返回false?

android - SharedElements 在 RecyclerView 中的不良影响

Android:在 Google Play 游戏中获取用户名

android - 我可以使用 Visual Studio 作为 IDE 进行 cocos2d-x 3.0rc2、c++ 开发吗?