在学习Android的spinner控件后,需要完成一个EditText文本框输入然后对spinner的选项进行增删的过程,我从开始到最终完成提供完整的代码供大家交流学习。
运行截图先上运行结果以便于让您知道这篇文章对您是否有用)
第二部:将代码的样式进行修改(先做出样式再完成功能)
因为演示所以只对Button按钮的样式进行了稍微的修改;因为各个组件的样式修改方法都大同小异。
具体过程是;1、在res-drawable目录上右击,选择New,选择Drawable Resource File
第三步:设置静态数据(因为第一次打开有点数据在spinner里总是好看的)
选择res目录下的values下的strings.xml文件点击打开;在resource根节点下创建一个string-array子节点
具体代码如下
吃饭
睡觉
打豆豆
第四步(最重要的一步)
找到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 list = new ArrayList();
ArrayAdapter 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(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!!!加油各位。