Java 安卓应用。从文本字段创建复选框

Java 安卓应用。从文本字段创建复选框,java,android,checkbox,methods,Java,Android,Checkbox,Methods,我是java和android编程新手。我要做的是创建一个应用程序,在EditText字段中引入名称后创建一个复选框。例如创建待办事项列表或购物列表 public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView

我是java和android编程新手。我要做的是创建一个应用程序,在EditText字段中引入名称后创建一个复选框。例如创建待办事项列表或购物列表

public class MainActivity extends AppCompatActivity {

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

public void storeProduct(View view) {
    //Input name
    EditText productField = (EditText) findViewById(R.id.product_field);
    String product = productField.getText().toString();
}

public void createCheckBox(String product){
    //Create Checkbox
    CheckBox savedPRoduct = new CheckBox(getApplicationContext());
    savedProduct.setText(producto);
}
这就是我目前得到的。我不确定这是否正确。我一直在查阅文档和一些论坛,包括这个论坛,我设法创建了方法storeProduct来保存EditText视图中的字符串。然后创建createCheckbox方法,该方法使用EditText视图中的字符串生成checbox。我不确定的是hoy是否可以创建显示已创建复选框的方法

非常感谢您能与我分享任何线索和信息


非常感谢。

您通常需要在res/layout/R.layout.activity\u main.xml下的文件中添加视图内容

从那里,您可以在布局中添加所需的所有视图。下面是android文档中的一个布局示例

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:orientation="vertical" >
<EditText
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:hint="@string/to" />
<EditText
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:hint="@string/subject" />
<EditText
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1"
    android:gravity="top"
    android:hint="@string/message" />
<Button
    android:layout_width="100dp"
    android:layout_height="wrap_content"
    android:layout_gravity="right"
    android:text="@string/send" />
</LinearLayout>


您也可以通过编程方式完成,但我不建议您这样做,因为这违反了android的良好做法。

您通常需要在res/layout/R.layout.activity\u main.xml下的文件中添加视图内容

从那里,您可以在布局中添加所需的所有视图。下面是android文档中的一个布局示例

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:orientation="vertical" >
<EditText
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:hint="@string/to" />
<EditText
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:hint="@string/subject" />
<EditText
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1"
    android:gravity="top"
    android:hint="@string/message" />
<Button
    android:layout_width="100dp"
    android:layout_height="wrap_content"
    android:layout_gravity="right"
    android:text="@string/send" />
</LinearLayout>


你也可以通过编程来实现,但我不建议你这样做,因为这违背了android的良好实践。

因此,在KevDev的帮助下,我成功地实现了以下xml代码:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:orientation="vertical"
    tools:context=".MainActivity">


<EditText
    android:id="@+id/product_field"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:inputType="textCapSentences"
    android:hint="Product"/>

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:onClick="storeProduct"
    android:text="Guardar"/>

<CheckBox
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="product"
    android:id="@+id/productCheckBox"
    android:visibility="gone"/>
</LinearLayout>

它只显示一次复选框,但我正在做一个循环来放置一系列复选框。我还在寻找recyclerview文档,以便在代码中介绍它。

因此,在KevDev的帮助下,我成功地提出了以下xml代码:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:orientation="vertical"
    tools:context=".MainActivity">


<EditText
    android:id="@+id/product_field"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:inputType="textCapSentences"
    android:hint="Product"/>

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:onClick="storeProduct"
    android:text="Guardar"/>

<CheckBox
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="product"
    android:id="@+id/productCheckBox"
    android:visibility="gone"/>
</LinearLayout>

它只显示一次复选框,但我正在做一个循环来放置一系列复选框。我还查看了recyclerview文档,以便在此代码中介绍它。

好的,只有在按下storeProduct按钮时,应用程序才可以创建复选框。XML文件中只有EditText视图和Button视图。你能告诉我为什么这是对安卓良好实践的反对吗?当在ip中99%的时间都不需要时,你会用一个更复杂的代码来结束ip。关于您的问题,您可以在按下按钮之前设置复选框的属性android:visibility=“gone”。你可以将视图的可见性设置为可见。太好了,我可以创建一个复选框。现在我会研究一下,想一想每次我按下按钮时都会创建不同复选框的循环:)我很好奇为什么每次有人按下按钮时都会创建不同的复选框?如果我回答了你的问题,我很高兴我帮助了你,请将此标记为已回答:)嗯,该应用程序应该用作购物清单。您可以通过EditText字段介绍所需的任何产品。然后,一旦创建了列表,您就可以检查您在购物车中抛出的所有内容。好的,只有在按下storeProduct按钮时,应用程序才可以创建复选框。XML文件中只有EditText视图和Button视图。你能告诉我为什么这是对安卓良好实践的反对吗?当在ip中99%的时间都不需要时,你会用一个更复杂的代码来结束ip。关于您的问题,您可以在按下按钮之前设置复选框的属性android:visibility=“gone”。你可以将视图的可见性设置为可见。太好了,我可以创建一个复选框。现在我会研究一下,想一想每次我按下按钮时都会创建不同复选框的循环:)我很好奇为什么每次有人按下按钮时都会创建不同的复选框?如果我回答了你的问题,我很高兴我帮助了你,请将此标记为已回答:)嗯,该应用程序应该用作购物清单。您可以通过EditText字段介绍所需的任何产品。然后,一旦创建了列表,您就可以检查您在购物车中抛出的所有内容。