如何使用onclick(),使用按钮更改文本视图的文本颜色?

时间:2013-11-16 08:38:24

标签: java android

ANSWERED

我想要做的是使用onClick()更改按下按钮上文本视图的文本颜色。 在我的布局文件中,有一个文本视图和2个带有android:onClick =“onClick”属性的按钮。

这是我的代码:


package ic.lunar.tictactoefree;

import android.os.Bundle;
import android.app.Activity;
import android.graphics.Color;
import android.view.Menu;
import android.widget.Button;
import android.widget.TextView;

public class SettingsActivity extends Activity {

TextView tv1;

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

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.settings, menu);
    return true;
}

public void onClick(Button b){
    tv1 = (TextView)findViewById(R.id.hello);
    if(b.getId()==R.id.grey){
        tv1.setTextColor(Color.RED);
    }
    if(b.getId()==R.id.white){
        tv1.setTextColor(Color.BLUE);
    }
}
}

现在每当我点击任意2个按钮时,app力就会关闭。 怎么做才能使它发挥作用。 我想根据按下的按钮改变颜色。

1 个答案:

答案 0 :(得分:1)

更改为

public void onClick(View v){ // method signature

假设您在settings.xml中有按钮

android:onClick="onClick"  // for buttons in xml

在onCreate中初始化

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.settings);
    tv1 = (TextView)findViewById(R.id.hello);
}

public void onClick(View v){
    switch(v.getId())
    {
       case R.id.grey:
           tv1.setTextColor(Color.RED);
       break;
        case R.id.white:
           tv1.setTextColor(Color.BLUE);
       break;
    } 

}