Java 更改对象';数组列表中的文本颜色
我一直在尝试在数组列表中添加一个颜色参数,但我似乎做不到,我花了无数个小时来尝试,甚至在这里搜索答案 这是我的代码: MainActivity.java:Java 更改对象';数组列表中的文本颜色,java,android,Java,Android,我一直在尝试在数组列表中添加一个颜色参数,但我似乎做不到,我花了无数个小时来尝试,甚至在这里搜索答案 这是我的代码: MainActivity.java: package com.example.ofir.myapplication; import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View;
package com.example.ofir.myapplication;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import java.util.ArrayList;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final ArrayList<Brands> brands = new ArrayList<>();
brands.add(new Brands("KTM"));
brands.add(new Brands("BMW"));
brands.add(new Brands("Suzuki"));
brands.add(new Brands("Yamaha"));
brands.add(new Brands("HONDA"));
BrandAdapter itemsAdapter = new BrandAdapter(this, brands);
ListView listView = (ListView) findViewById(R.id.brandlist);
listView.setAdapter(itemsAdapter);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
brands.get(position);
Intent intent = new Intent(MainActivity.this, infoPage.class );
startActivity(intent);
}
});
}
}
我想做的是在Arraylist
中添加颜色,而不是
brands.add(new Brands("KTM"));
我将有以下代码行:
brands.add(new Brands("KTM", Orange));
文本颜色将相应地改变为橙色
感谢advanced提供的任何帮助。因此,您需要一个包含两个值的对象列表,即品牌名称和颜色。 如果是这样的话,你必须在你的品牌课上阐述颜色
public class Brands {
private String mBrandName;
private String colour;
//constructor with 2 arguments, brand name and colour
public Brands(String brandName, String colour){
mBrandName = brandName;
this.colour = colour;
}
public String getBrand(){
return mBrandName;
}
public String getColour(){ //getter of colour
return colour;
}
}
然后您可以在列表中添加您的颜色(作为字符串,所以在引号中):
如果要显示颜色,则必须更改适配器,该行:
brandName.setText(brand_item.getBrand());
对这样的事情:
brandName.setText(brand_item.getBrand());
brandName.setColorText(Color.parseColor(brand_item.getColour()));
有关设置颜色的更多信息,您可以在此处找到:
==========旧文本
但我强烈建议添加显示颜色的新文本视图,然后在适配器中查找并查看它(如
brandName
),并将品牌的颜色分配给新创建的文本颜色视图。因此,您希望列表中的对象具有两个值,即品牌名称和颜色。
如果是这样的话,你必须在你的品牌课上阐述颜色
public class Brands {
private String mBrandName;
private String colour;
//constructor with 2 arguments, brand name and colour
public Brands(String brandName, String colour){
mBrandName = brandName;
this.colour = colour;
}
public String getBrand(){
return mBrandName;
}
public String getColour(){ //getter of colour
return colour;
}
}
然后您可以在列表中添加您的颜色(作为字符串,所以在引号中):
如果要显示颜色,则必须更改适配器,该行:
brandName.setText(brand_item.getBrand());
对这样的事情:
brandName.setText(brand_item.getBrand());
brandName.setColorText(Color.parseColor(brand_item.getColour()));
有关设置颜色的更多信息,您可以在此处找到:
==========旧文本
但我强烈建议添加新的显示颜色的文本视图,然后在适配器中查找并查看它(如
brandName
),并将品牌的颜色指定给新创建的文本颜色视图。为什么Brands
类扩展了AppCompatActivity
,这意味着它是活动。。据我所知,你只是存储了品牌的名称
,所以它应该是一些pojo类谢谢你让我知道,我删除了它,基本上我想做的是在主屏幕上列出一个列表,在每个列表项上单击它将移到正确的页面,我试图使每个列表项都具有代表品牌的颜色。为什么您的品牌
类扩展了AppCompatActivity
,这意味着它是活动。。据我所知,你只是存储了品牌的名称
,所以它应该是一些pojo类谢谢你让我知道,我删除了它,基本上我想做的是在主屏幕上列出一个列表,在每个列表项上单击它将移到正确的页面,我想让每个列表项都有代表品牌的颜色。首先谢谢你的回复,我不明白它怎么知道GetColor指的是一种颜色?据它所知,它只是一个简单的字符串?我改变了品牌
类,它有类型为String
的fieldcolor
,这个类有一个getter方法getcolor()
,返回类型为String
的fieldcolor
。看看Brand
类。我看到了,但是getcolor不只是字符串的名称吗?什么定义它为颜色?哦,伙计,它是Java的基础:pGetColor是方法(getter),若需要字段颜色的值,可以调用它。当您通过新品牌(“KTM”,“orange”)构造品牌对象时,您的类中有一个构造函数将构造函数参数分配给对象字段(第一个arg.name,第二个arg.color)
它知道名称是KTM
,颜色是橙色
。了解方法、构造函数和面向对象编程。也许这对你有帮助:我明白了,谢谢你的帮助和耐心,我还在编写代码的第一步,你帮了我很多!首先谢谢你的回复,我不明白它怎么知道GetColor指的是一种颜色?据它所知,它只是一个简单的字符串?我改变了品牌
类,它有类型为String
的fieldcolor
,这个类有一个getter方法getcolor()
,返回类型为String
的fieldcolor
。看看Brand
类。我看到了,但是getcolor不只是字符串的名称吗?什么定义它为颜色?哦,伙计,它是Java的基础:pGetColor是方法(getter),若需要字段颜色的值,可以调用它。当您通过新品牌(“KTM”,“orange”)构造品牌对象时,您的类中有一个构造函数将构造函数参数分配给对象字段(第一个arg.name,第二个arg.color)
它知道名称是KTM
,颜色是橙色
。了解方法、构造函数和面向对象编程。也许这对你有帮助:我明白了,谢谢你的帮助和耐心,我还在编写代码的第一步,你帮了我很多!