按下按钮时如何删除布局
Posted
技术标签:
【中文标题】按下按钮时如何删除布局【英文标题】:How to delete layout when button pressed 【发布时间】:2020-11-08 19:05:47 【问题描述】:我是 android 新手,请帮我找到适合这种情况的解决方案。
请参考 UI(图片链接)。如果用户单击添加按钮新列表视图应该膨胀,我正在尝试这样做。当用户按下特定列表视图上的删除按钮时,整行都应该被删除。
问题1:当按下删除时,错误的行被删除了。
问题 2:当用户按下开始组 id 时,所有添加的行的值都应该保存在 arraylist 中。
问题 3:我必须在添加和删除中应用限制.. 用户不能添加超过 20 行,并且至少有一行可用,即用户不能删除所有行。
用户界面看起来像:App UI
代码:每行的XML文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_
android:layout_>
<TextView
android:id="@+id/textView"
android:layout_
android:layout_
android:layout_weight="1"
android:gravity="center"
android:paddingTop="20dp"
android:paddingBottom="20dp"
android:text="1" />
<EditText
android:id="@+id/editText1"
android:layout_
android:layout_
android:layout_weight="1"
android:inputType="time"/>
<Button
android:id="@+id/button2"
android:layout_
android:layout_
android:layout_weight="1"
android:text="delete" />
<Spinner
android:id="@+id/spinner"
android:layout_
android:layout_
android:layout_weight="1" />
</LinearLayout>
UI部分的XML代码
<LinearLayout
android:layout_
android:layout_
android:id="@+id/leanierLayout_test"
android:orientation="vertical">
</LinearLayout>
<Button
android:id="@+id/button1"
android:layout_gravity="right"
android:layout_
android:layout_
android:text="Add"
/>
OnCreate 方法:
@Override
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.ap_auto_start_test);
ArrayAdapter<String> adapter2;
adapter2 = new ArrayAdapter<>(this,android.R.layout.simple_spinner_item,groupId);
adapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
Button add = findViewById(R.id.button1);
final LinearLayout data = (LinearLayout) findViewById(R.id.leanierLayout_test);
add.setOnClickListener(new View.OnClickListener()
@Override
public void onClick(View v)
try
LayoutInflater li = LayoutInflater.from(getApplicationContext());
final View view = li.inflate(R.layout.tryandtest,null);
data.addView(view);
Spinner s = view.findViewById(R.id.spinner);
s.setAdapter(adapter2);
Button delete= findViewById(R.id.button2);
delete.setOnClickListener(new View.OnClickListener()
@Override
public void onClick(View v)
data.removeViewInLayout(view);
);
catch (Exception e)
e.printStackTrace();
Log.d("infilate exception", e.toString());
);
【问题讨论】:
为什么不用recyclerView??? 使用 recyclerView 实现这个更简单吗? 所有问题(问题:1,2,3)是否都使用 recyclerView 提前解决了? 当然可以。 如果您需要更多信息,请务必告诉我。 【参考方案1】:您可以查看在 recyclerview 上执行 CRUD 功能。停止使用列表视图。效率很低。
以下链接应为您提供有关如何实现功能的非常清晰的指导。
Recycler view CRUD
【讨论】:
以上是关于按下按钮时如何删除布局的主要内容,如果未能解决你的问题,请参考以下文章