Android借助于Spinner可以动态添加删除项目
作者:互联网
Android借助于Spinner可以动态添加删除项目(Android初学)
- 介绍
- 运行截图
- 实施步骤详解
- 第一步:对activity_main.xml文件进行修改,即进行页面布局
- 第二部:将代码的样式进行修改(先做出样式再完成功能)
- 第三步:设置静态数据(因为第一次打开有点数据在spinner里总是好看的)
- 第四步(最重要的一步)
- 结语
介绍
在学习Android的spinner控件后,需要完成一个EditText文本框输入然后对spinner的选项进行增删的过程,我从开始到最终完成提供完整的代码供大家交流学习。
运行截图
先上运行结果以便于让您知道这篇文章对您是否有用)
实施步骤详解
第一步:对activity_main.xml文件进行修改,即进行页面布局
这一共分为四个部分,一个Edittext,两个Button,一个Spinner,并对他们的位置大小和颜色等样式进行修改。具体代码如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
android:orientation="vertical">
<EditText
android:id="@+id/EditInfo"
android:layout_width="fill_parent"
android:layout_height="100dp"
android:layout_marginTop="30dp"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:paddingLeft="20dp"
android:textSize="50sp"
android:hint="@string/editInfo" />
<Button
android:id="@+id/add_proj"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_marginTop="30dp"
android:layout_marginRight="20dp"
android:textSize="30sp"
android:background="@drawable/btn_shape"
android:text="@string/add"
/>
<Button
android:id="@+id/delete_proj"
android:layout_marginTop="30dp"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:background="@drawable/btn_shape"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="30sp"
android:text="@string/delete"/>
<Spinner
android:id="@+id/spinner_view"
android:layout_marginTop="30dp"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:layout_width="fill_parent"
android:layout_height="50dp"/>
</LinearLayout>
第二部:将代码的样式进行修改(先做出样式再完成功能)
因为演示所以只对Button按钮的样式进行了稍微的修改;因为各个组件的样式修改方法都大同小异。
具体过程是;1、在res-drawable目录上右击,选择New,选择Drawable Resource File
2、在Root element 选项下选择shape,在File name后填写文件名称
最后再文件中输入以下代码:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<solid android:color="#C3C3C3"/>
<corners android:radius="10dp"/>
<stroke android:color="#000000" android:width="3dp"/>
</shape>
第三步:设置静态数据(因为第一次打开有点数据在spinner里总是好看的)
选择res目录下的values下的strings.xml文件点击打开;在resource根节点下创建一个string-array子节点
具体代码如下
<resources>
<string-array name="sprinner">
<item>吃饭</item>
<item>睡觉</item>
<item>打豆豆</item>
</string-array>
</resources>
第四步(最重要的一步)
找到MainActivity文件然后打开,输入以下代码(因为代码中每一步都写了清晰的注释所以直接上代码)!
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
import java.util.ArrayList;
public class MainActivity extends AppCompatActivity {
/*1先对组件进行声明*/
EditText editText;
Button add;
Button delete;
Spinner spinner;
ArrayList<String> list = new ArrayList<>();
ArrayAdapter<String> adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
/*2通过id对组件进行后端绑定*/
editText=findViewById(R.id.EditInfo);
add=findViewById(R.id.add_proj);
delete=findViewById(R.id.delete_proj);
spinner=findViewById(R.id.spinner_view);
/*4获取Strings.xml文件中构建的数组数据*/
String[] value = getResources().getStringArray(R.array.action);/*因为我们的原始数据存储在string.xml文件中,所以getResource然后getStringArray;然后通过数组的id获取*/
/*5用for循环将数组数据存储到list中*/
for (int i=0 ;i<value.length;i++) {
list.add(value[i]);
}
/*6sadapter配置数据以及配置下拉样式并且pinner绑定适配器*/
adapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,list);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
spinner.setPrompt("项目总览");
/*7添加按钮监听器*/
add.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
adapter.add(editText.getText().toString());
setTitle("当前项目有"+String.valueOf(list.size())+"个");
}
});
delete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
adapter.remove(editText.getText().toString());
setTitle("当前项目有"+String.valueOf(list.size())+"个");
}
});
}
}
注意:1、在粘贴的时候不要把你原本package的名字给粘贴没了;
2、如果你是自己手敲代码的话注意import的包的类型如果出现问题就很烦
结语
我是个刚学android的计算机学生,在学习过程中发现android在网上的资源并不是很好找,所以希望通过自己的努力能让更多对android感兴趣的人抛砖引玉,如果有意见或者想和我交流可以加我的微信,如果觉得写得不错或者对你有一点点帮助,希望可以点个赞让我小小的开心一下。最后,程序员最牛B!!!加油各位。
标签:xml,spinner,代码,id,Spinner,借助于,import,Android,android 来源: https://blog.csdn.net/qq_41824524/article/details/105249795