0

行の色が赤の場合、テキストは緑の太字の斜体に設定されません。デバッグすると、TextViewに各textViews設定を設定するように指示していることがわかります。

TableRow row = new TableRow(getContext());
            row.setLayoutParams(new TableRow.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));
            String[] items = list.get(l).split(":");
            for(int i=0; i < items.length; i++){
                //see if i need to colour row
                if(items[i].startsWith("colorme_") == true) {
                    if (items[i].substring(8).equals("red") == true) {
                        row.setBackgroundColor(Color.RED);
                    }
                } else { 
                    //create a temp textview then add to row
                    TextView tempTV = new TextView(getContext());
                    tempTV.setText(items[i].toString());
                    //test against correct answers and colour text view green if correct
                    if (correctAnswers != null && correctAnswers.size() > i) {
                        if (correctAnswers.get(i).equals(items[i].toString()) == true) {
                            tempTV.setTextColor(Color.GREEN);
                            tempTV.setTypeface(null, Typeface.BOLD_ITALIC);
                        }                               
                    }
                    row.addView(tempTV,lpTextView); 
                }
            }
            //add the row
            tempTable.addView(row);
4

1 に答える 1

1

私には、2つの異なる色設定コードを異なる側で分離しているように見えます。これにより、if else両方が同時に呼び出されることはありません。ifステートメントがtrueを返す場合、elseステートメントはトリガーされず、コードを実行せずに渡す、setTextColorまたはその逆の場合、ifステートメントがfalseを返す場合は、背景色の変更をスキップし、テキストの色のみを変更します。

それが理にかなっていることを願っています

ここで編集は例です

if(items[i].startsWith("colorme_") == true) {
    //this is where your are preforming your change row color to red
} else{
    //this is where you are setting your text color to green
}
于 2012-11-11T22:36:54.760 に答える