Java 单击按钮时,EditText中的背景色和字体系列应更改
我正在尝试创建一个包含edittext的活动,每当单击按钮时,其背景颜色和字体都应该更改。 为了对edittext执行这些操作,我创建了两个int值的ArrayList,并将所有颜色id和字体id保存在此ArrayList中。每当单击按钮时,背景色不会改变,但颜色的六位代码会打印在编辑文本中,这些颜色代码在每种颜色的代码前面都有额外的ff值,如#ff1EFA9D,在字体方法中,我收到一个错误,显示:- 无法启动活动组件信息{com.nanb.alpha/com.nanb.alpha.postcreater}:java.lang.ArrayIndexOutOfBoundsException:length=4;索引=-1 我曾试图通过互联网找到解决方案,但没有得到任何满足错误的解决方案 下面给出了更改edittext的背景色和字体的代码Java 单击按钮时,EditText中的背景色和字体系列应更改,java,android,arraylist,android-edittext,Java,Android,Arraylist,Android Edittext,我正在尝试创建一个包含edittext的活动,每当单击按钮时,其背景颜色和字体都应该更改。 为了对edittext执行这些操作,我创建了两个int值的ArrayList,并将所有颜色id和字体id保存在此ArrayList中。每当单击按钮时,背景色不会改变,但颜色的六位代码会打印在编辑文本中,这些颜色代码在每种颜色的代码前面都有额外的ff值,如#ff1EFA9D,在字体方法中,我收到一个错误,显示:- 无法启动活动组件信息{com.nanb.alpha/com.nanb.alpha.postcr
private EditText editText;
private ImageButton color,font;
ArrayList<Integer> bgcolorlist = new ArrayList<Integer>(10);
ArrayList<Integer> fontstyle = new ArrayList<Integer>(6);
int fontstylename=R.font.abril_fatface,bgcolor=R.color.white,fontpostion = fontstyle.indexOf(fontstylename);
int postion = bgcolorlist.indexOf(bgcolor);
private void Initialization() {
cancel = view.findViewById(R.id.backbutton);
createnextbutton = view.findViewById(R.id.nextbutton);
editText = view.findViewById(R.id.textpost);
color = view.findViewById(R.id.bgcolorbutton);
font = view.findViewById(R.id.fontstyle);
}
//codes are for the background color changing
private void backgroundcolormethod() {
bgcolorlist.add(R.color.white);
bgcolorlist.add(R.color.darkGreen);
bgcolorlist.add(R.color.colorPrimaryDark);
bgcolorlist.add(R.color.colorAccent);
bgcolorlist.add(R.color.colorPrimary);
bgcolorlist.add(R.color.orange);
bgcolorlist.add(R.color.edittextbg5);
bgcolorlist.add(R.color.edittextbg4);
bgcolorlist.add(R.color.edittextbg3);
bgcolorlist.add(R.color.edittextbg2);
bgcolorlist.add(R.color.edittextbg1);
editText.setBackgroundColor(bgcolor);
color.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(postion == 10){
//Toast.makeText(view.getContext(),"last element",Toast.LENGTH_SHORT).show();
editText.setText(bgcolorlist.get(postion));
postion = 0;
}else{
int newpostion = postion + 1;
editText.setText(bgcolorlist.get(newpostion));
postion = newpostion;
}
}
});
}
//codes for changing the fonts
private void fontstylemethod() {
fontstyle.add(R.font.abril_fatface);
fontstyle.add(R.font.cedarville_cursive);
fontstyle.add(R.font.alfa_slab_one);
fontstyle.add(R.font.annie_use_your_telescope);
fontstyle.add(R.font.aclonica);
fontstyle.add(R.font.aguafina_script);
fontstyle.add(R.font.arizonia);
editText.setTypeface(Typeface.defaultFromStyle(fontpostion));
font.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(fontpostion == 6){
Toast.makeText(view.getContext(),"last element",Toast.LENGTH_SHORT).show();
editText.setText(fontstyle.get(postion));
fontpostion= 0;
}else{
int newpostion = fontpostion + 1;
editText.setText(fontstyle.get(newpostion));
fontpostion = newpostion;
}
}
});
}
私有编辑文本;
私有图像按钮颜色、字体;
ArrayList bgcolorlist=新的ArrayList(10);
ArrayList fontstyle=新的ArrayList(6);
int fontstylename=R.font.abril_fatface,bgcolor=R.color.white,fontposition=fontstyle.indexOf(fontstylename);
int position=bgcolorlist.indexOf(bgcolor);
私有void初始化(){
cancel=view.findViewById(R.id.backbutton);
createnextbutton=view.findViewById(R.id.nextbutton);
editText=view.findviewbyd(R.id.textpost);
颜色=view.findViewById(R.id.bgcolorbutton);
font=view.findviewbyd(R.id.fontstyle);
}
//代码用于更改背景颜色
私有void backgroundcolormethod(){
bgcolorlist.add(R.color.white);
bgcolorlist.add(R.color.darkGreen);
添加(R.color.colorPrimaryDark);
bgcolorlist.add(R.color.colorAccent);
bgcolorlist.add(R.color.colorPrimary);
bgcolorlist.add(R.color.orange);
添加(R.color.edittextbg5);
添加(R.color.edittextbg4);
添加(R.color.edittextbg3);
添加(R.color.edittextbg2);
添加(R.color.edittextbg1);
editText.setBackgroundColor(bgcolor);
color.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
如果(职位==10){
//Toast.makeText(view.getContext(),“最后一个元素”,Toast.LENGTH_SHORT.show();
setText(bgcolorlist.get(position));
职位=0;
}否则{
int newposition=position+1;
setText(bgcolorlist.get(newposition));
职位=新职位;
}
}
});
}
//更改字体的代码
私有void fontstylemethod(){
添加(R.font.abril_fatface);
添加(R.font.cedarville_草书);
添加(R.font.alfa_slab_one);
添加(R.font.annie_使用你的望远镜);
添加(R.font.aclonica);
添加(R.font.aguafina_脚本);
添加(R.font.arizonia);
editText.setTypeface(Typeface.defaultFromStyle(fontpostion));
font.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
如果(FontPosition==6){
Toast.makeText(view.getContext(),“最后一个元素”,Toast.LENGTH_SHORT.show();
editText.setText(fontstyle.get(position));
Fontposition=0;
}否则{
int newposition=fontposition+1;
editText.setText(fontstyle.get(newposition));
fontpostion=新职位;
}
}
});
}
请帮助我解决这些错误。尝试将代码更改为:
ArrayList<Integer> bgcolorlist = new ArrayList<Integer>(11);
ArrayList<Integer> fontstyle = new ArrayList<Integer>(7);
int fontpostion = 0;
int postion = 0;
private void Initialization() {
cancel = view.findViewById(R.id.backbutton);
createnextbutton = view.findViewById(R.id.nextbutton);
editText = view.findViewById(R.id.textpost);
color = view.findViewById(R.id.bgcolorbutton);
font = view.findViewById(R.id.fontstyle);
}
//codes are for the background color changing
private void backgroundcolormethod() {
bgcolorlist.add(R.color.white);
bgcolorlist.add(R.color.darkGreen);
bgcolorlist.add(R.color.colorPrimaryDark);
bgcolorlist.add(R.color.colorAccent);
bgcolorlist.add(R.color.colorPrimary);
bgcolorlist.add(R.color.orange);
bgcolorlist.add(R.color.edittextbg5);
bgcolorlist.add(R.color.edittextbg4);
bgcolorlist.add(R.color.edittextbg3);
bgcolorlist.add(R.color.edittextbg2);
bgcolorlist.add(R.color.edittextbg1);
editText.setBackgroundColor(bgcolorlist.get(0));
color.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(postion == 10){
//Toast.makeText(view.getContext(),"last element",Toast.LENGTH_SHORT).show();
editText.setText(bgcolorlist.get(postion));
postion = 0;
}else{
postion++;
editText.setText(bgcolorlist.get(postion));
}
}
});
}
//codes for changing the fonts
private void fontstylemethod() {
fontstyle.add(R.font.abril_fatface);
fontstyle.add(R.font.cedarville_cursive);
fontstyle.add(R.font.alfa_slab_one);
fontstyle.add(R.font.annie_use_your_telescope);
fontstyle.add(R.font.aclonica);
fontstyle.add(R.font.aguafina_script);
fontstyle.add(R.font.arizonia);
editText.setTypeface(Typeface.defaultFromStyle(fontstyle.get(0)));
font.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(fontpostion == 6){
Toast.makeText(view.getContext(),"last element",Toast.LENGTH_SHORT).show();
editText.setText(fontstyle.get(postion));
fontpostion= 0;
}else{
fontpostion++;
editText.setText(fontstyle.get(fontpostion));
}
}
});
}
ArrayList bgcolorlist=新的ArrayList(11);
ArrayList fontstyle=新的ArrayList(7);
int-fontposition=0;
内部职位=0;
私有void初始化(){
cancel=view.findViewById(R.id.backbutton);
createnextbutton=view.findViewById(R.id.nextbutton);
editText=view.findviewbyd(R.id.textpost);
颜色=view.findViewById(R.id.bgcolorbutton);
font=view.findviewbyd(R.id.fontstyle);
}
//代码用于更改背景颜色
私有void backgroundcolormethod(){
bgcolorlist.add(R.color.white);
bgcolorlist.add(R.color.darkGreen);
添加(R.color.colorPrimaryDark);
bgcolorlist.add(R.color.colorAccent);
bgcolorlist.add(R.color.colorPrimary);
bgcolorlist.add(R.color.orange);
添加(R.color.edittextbg5);
添加(R.color.edittextbg4);
添加(R.color.edittextbg3);
添加(R.color.edittextbg2);
添加(R.color.edittextbg1);
editText.setBackgroundColor(bgcolorlist.get(0));
color.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
如果(职位==10){
//Toast.makeText(view.getContext(),“最后一个元素”,Toast.LENGTH_SHORT.show();
setText(bgcolorlist.get(position));
职位=0;
}否则{
职位++;
setText(bgcolorlist.get(position));
}
}
});
}
//更改字体的代码
私有void fontstylemethod(){
添加(R.font.abril_fatface);
添加(R.font.cedarville_草书);
添加(R.font.alfa_slab_one);
添加(R.font.annie_使用你的望远镜);
添加(R.font.aclonica);
添加(R.font.aguafina_脚本);
添加(R.font.arizonia);
editText.setTypeface(Typeface.defaultFromStyle(fontstyle.get(0));
font.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
如果(FontPosition==6){
Toast.makeText(view.getContext(),“最后一个元素”,Toast.LENGTH_SHORT.show();
editText.setText(fontstyle.get(position));
Fontposition=0;
}否则{
Fontposition++;