如何以编程方式为另一个xml文件设置Textview的背景颜色?

时间:2013-05-30 11:42:49

标签: java android performance android-layout android-intent

你是Android的新手如何以编程方式为另一个xml文件设置文本背景颜色我已经使用set content view添加xml文件但它只有listview而且我有另一个xml文件使用模块执行文件,我想要到modelo xml文件中的文本背景

public void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main1);
    EXECUTAR = (Button) findViewById(R.id.btn_buscar);
    ValorBusca = (EditText) findViewById(R.id.txt_buscar);
    Lista = (ListView) findViewById(R.id.listView1);
    ValorBusca.setText("");
    EXECUTAR.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            QuerySQL(null);
        }
    });
}
    public  void QuerySQL(String COMANDOSQL) {
    ResultSet rs;
    try {
        Statement statement = ma.connect.createStatement();
        rs = statement.executeQuery("SELECT * FROM "+ValorBusca.getText().toString()+"");
        List<Map<String, String>> data = null;
        data = new ArrayList<Map<String, String>>();
        while(rs.next()) {
            Map<String, String> datanum =new HashMap<String, String>();
            datanum.put("A",rs.getString(1));
            datanum.put("B",rs.getString(2));
            datanum.put("c",rs.getString(3));
            data.add(datanum);  
        }

        String[] from = {"A","B","c"};
        int[] views = {R.id.txttitulo,R.id.txtconteudo,R.id.textview3};
        AD = new SimpleAdapter(this, data, R.layout.modelo, from, views);
        Lista.setAdapter(AD);

    } catch (Exception e) {
        Log.e("ERRO",e.getMessage());
        Toast.makeText(getBaseContext(),"Enter Table Name",Toast.LENGTH_SHORT).show();
    }
}

我希望在此文件模式中使用文本背景

<TableLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:stretchColumns="0,1,2"
 >

 <TableRow
    android:id="@+id/tableRow1"
    android:layout_width="2dip"
    android:scrollbarAlwaysDrawHorizontalTrack="true"

    android:layout_height="wrap_content">
    <TextView
        android:id="@+id/txttitulo" 
        android:text="Name"
        android:layout_height="wrap_content"
        android:layout_width="2dip"
        android:gravity="left"
        android:background="@drawable/cell_shape"
        android:padding="5dip"

        android:layout_marginLeft="3dp"
        android:textColor="#0174DF"/>
    <TextView
        android:id="@+id/txtconteudo" 
        android:text="Number"
        android:layout_height="wrap_content"
        android:layout_width="2dip"
        android:gravity="left"
        android:textColor="#0174DF"
        android:background="@drawable/cell_shape"
        android:padding="5dip" 
        />
    <TextView
        android:id="@+id/textview3" 
        android:text="Number"
        android:layout_height="wrap_content"
        android:layout_width="2dip"
        android:gravity="right"
        android:layout_weight="1" 
        android:textColor="#0174DF"
        android:background="@drawable/cell_shape"
        android:padding="5dip" 
        android:layout_marginRight="3dp"/>

</TableRow> 

5 个答案:

答案 0 :(得分:8)

检查一下,

TextView textView = (TextView) findViewById(R.id.text1);
textView.setText("Welcome");
textView.setTextColor(Color.WHITE);
textView.setBackgroundColor(Color.RED);

答案 1 :(得分:3)

这可能会帮助你。

textview.setBackgroundResource(R.color.white);

注意:而不是 textview ,您需要编写 TextView对象名称。

答案 2 :(得分:2)

试试这种方式。只需覆盖适配器的getView()方法即可。并从那里改变颜色。

AD = new SimpleAdapter(this, data, R.layout.modelo, from, views){
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
if (v == null) {
LayoutInflater vi = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = vi.inflate(R.layout.modelo, null);
}
TextView text1 = (TextView) v.findViewById(R.id.txttitulo);
TextView text2 = (TextView) v.findViewById(R.id.txtconteudo);
TextView text3 = (TextView) v.findViewById(R.id.textview3);
text1.setTextColor(Color.GREEN);
text2.setTextColor(Color.GREEN);
text3.setTextColor(Color.GREEN);
return super.getView(position, v, parent);
}
};

我希望这会对你有所帮助。

答案 3 :(得分:0)

试试这个

View v=findViewById(R.layout.modelo);
TextView tv=(TextView)v.findViewById(R.id.txttitulo);
tv.setBackgroundColor(Color.RED);

答案 4 :(得分:0)

对于Kotlin;

全球定义文字视图:

lateinit var option1: TextView

在onCreate()方法中初始化

option1 = findViewById(R.id.option1)

通过color.xml设置背景颜色

option1.setBackgroundResource(R.color.colorBlue)