Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/204.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android:尝试根据类型更改ListView项目文本颜色_Java_Android - Fatal编程技术网

Java Android:尝试根据类型更改ListView项目文本颜色

Java Android:尝试根据类型更改ListView项目文本颜色,java,android,Java,Android,嘿,希望有人能帮我。我正在尝试根据发送的类型更改ListView的项目颜色 基本上就像一个项目日志,当我在Android中收到通知时创建项目。问题是每次我创建一个项目并发送的类型是true或false。它把我所有的东西都换成那种颜色 // private TextView resultText; private OrderConnector orderConnector; private Order newOrder; private Account mAccount; private List

嘿,希望有人能帮我。我正在尝试根据发送的类型更改ListView的项目颜色

基本上就像一个项目日志,当我在Android中收到通知时创建项目。问题是每次我创建一个项目并发送的类型是true或false。它把我所有的东西都换成那种颜色

// private TextView resultText;
private OrderConnector orderConnector;
private Order newOrder;
private Account mAccount;
private ListView lv;
private TextView item;

// Initializing a new String Array
String[] ordersList = {};

private static final int CONTACTS_WRITE_PERMISSION_CODE = 100;
private static final int CONTACTS_READ_PERMISSION_CODE = 101;

// Create a List from String Array elements
private final List<String> orders_list = new ArrayList<String>(Arrays.asList(ordersList));

private ArrayAdapter<String> arrayAdapter;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    // Get reference of widgets from XML layout
    lv = findViewById(R.id.lv);

    checkPermission(Manifest.permission.READ_CONTACTS, CONTACTS_READ_PERMISSION_CODE);
}

private void createItems(final boolean type){

    // Initialize an array adapter
    arrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, orders_list){
        public View getView(int position, View convertView, ViewGroup parent){

            Log.i("Position", String.valueOf(position));
            Log.i("Type", String.valueOf(type));

            item = (TextView) super.getView(position, convertView, parent);

            String myText = orders_list.get(position);
            item.setText(myText);

            if(type){
                item.setTextColor(Color.parseColor("#FF5eba7d"));
            }else{
                item.setTextColor(Color.parseColor("#FFef3f4d"));
            }

            item.setTypeface(item.getTypeface(), Typeface.BOLD);
            item.setTextSize(TypedValue.COMPLEX_UNIT_DIP,18);

            return item;
        }
    };
    lv.setAdapter(arrayAdapter);
}

// Function to check and request permission.
public void checkPermission(String permission, int requestCode)
{
    if (ContextCompat.checkSelfPermission(MainActivity.this, permission) == PackageManager.PERMISSION_DENIED) {
        // Requesting the permission
        ActivityCompat.requestPermissions(MainActivity.this, new String[] { permission }, requestCode);
    }
}

@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults)
{
    super.onRequestPermissionsResult(requestCode, permissions, grantResults);
    if (requestCode == CONTACTS_WRITE_PERMISSION_CODE) {
        if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
            Toast.makeText(MainActivity.this, "Contacts Permission Granted", Toast.LENGTH_SHORT).show();
        }
        else {
            Toast.makeText(MainActivity.this,"Contacts Permission Denied", Toast.LENGTH_SHORT).show();
        }
    }
}

public void addLog(final String orderID, final String date, final boolean type){

    new Thread(new Runnable() {
        @Override
        public void run() {
            try {
                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        // Setup the items colours and fonts etc
                        createItems(type);

                        // Add new Items to List
                        if(type){
                            orders_list.add(0, "Order "+ orderID +" has successfully printed - "+ date);
                        }else{
                            orders_list.add(0, "Order "+ orderID +" could not print successfully, order does not exist - "+ date);
                        }
                        arrayAdapter.notifyDataSetChanged();
                    }
                });

            } catch (Exception ex) {
                ex.printStackTrace();
            }
        }
    }).start();
}
//私有文本查看结果文本;
专用OrderConnector OrderConnector;
私人订单新订单;
私人帐户mAccount;
私有ListView lv;
私有文本视图项;
//初始化新字符串数组
字符串[]ordersList={};
私有静态最终int联系人\写入\权限\代码=100;
私有静态最终int联系人\读取\权限\代码=101;
//从字符串数组元素创建列表
private final List orders_List=new ArrayList(Arrays.asList(ordersList));
专用阵列适配器阵列适配器;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//从XML布局获取小部件的引用
lv=findViewById(R.id.lv);
检查权限(Manifest.permission.READ\u联系人、联系人\u READ\u权限\u代码);
}
私有void createItems(最终布尔类型){
//初始化阵列适配器
arrayAdapter=新的arrayAdapter(这个,android.R.layout.simple\u list\u item\u 1,orders\u list){
公共视图getView(int位置、视图转换视图、视图组父视图){
Log.i(“位置”,String.valueOf(位置));
Log.i(“Type”,String.valueOf(Type));
item=(TextView)super.getView(position,convertView,parent);
字符串myText=orders\u list.get(位置);
item.setText(myText);
如果(类型){
item.setTextColor(Color.parseColor(#FF5eba7d));
}否则{
item.setTextColor(Color.parseColor(#FFef3f4d));
}
item.setTypeface(item.getTypeface(),Typeface.BOLD);
项目.SettexSize(TypedValue.COMPLEX\u UNIT\u DIP,18);
退货项目;
}
};
低压设置适配器(阵列适配器);
}
//用于检查和请求权限的函数。
public void checkPermission(字符串权限,int requestCode)
{
if(ContextCompat.checkSelfPermission(MainActivity.this,permission)==PackageManager.permission\u拒绝){
//请求许可
ActivityCompat.requestPermissions(MainActivity.this,新字符串[]{permission},requestCode);
}
}
@凌驾
public void onRequestPermissionsResult(int-requestCode,@NonNull-String[]permissions,@NonNull-int[]grantResults)
{
super.onRequestPermissionsResult(请求代码、权限、授权结果);
if(requestCode==联系人\写入\权限\代码){
if(grantResults.length>0&&grantResults[0]==PackageManager.PERMISSION\u已授予){
Toast.makeText(MainActivity.this,“授予联系人权限”,Toast.LENGTH_SHORT.show();
}
否则{
Toast.makeText(MainActivity.this,“联系人权限被拒绝”,Toast.LENGTH_SHORT.show();
}
}
}
public void addLog(最终字符串orderID、最终字符串日期、最终布尔类型){
新线程(newrunnable()){
@凌驾
公开募捐{
试一试{
runOnUiThread(新的Runnable(){
@凌驾
公开募捐{
//设置项目颜色和字体等
创建项目(类型);
//将新项目添加到列表中
如果(类型){
订单列表。添加(0,“订单”+orderID+”已成功打印-“+date”);
}否则{
订单列表。添加(0,“订单”+orderID+”无法成功打印,订单不存在-“+date”);
}
arrayAdapter.notifyDataSetChanged();
}
});
}捕获(例外情况除外){
例如printStackTrace();
}
}
}).start();
}
因此,我在这里发送的标题,日期和类型是真实的。 addLog(“测试项目名称”,日期,true)

也许我做错了什么,但我希望该项目的文字颜色改变相应的类型,我在这样做是真是假。。。如果为真,则绿色或假为红色

不要将所有内容都更改为红色,因为某些项目应保持绿色