我想要做的是使用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力就会关闭。 怎么做才能使它发挥作用。 我想根据按下的按钮改变颜色。
答案 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;
}
}