菜鸟级别的问题
我想写两个按钮,用设置textview来响应事件,在手机上一运行就显示已停止,求高手
package com.example.hello;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends Activity {
private static final int MENU_ABOUT = 0;
private static final int MENU_QUIT = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btn1 = (Button)findViewById(R.id.button1);
btn1.setOnClickListener(new ButtonListener());
Button btn2 = (Button)findViewById(R.id.menu_settings);
btn2.setOnClickListener(new ButtonListener1());
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
menu.add(0,MENU_ABOUT,0,"关于");
menu.add(0,MENU_QUIT,0,"退出");
return true;
}
class ButtonListener implements OnClickListener{
public void onClick(View arg0) {
// TODO Auto-generated method stub
TextView tvView = (TextView)findViewById(R.id.textView1);
tvView.setText("按下了按钮1");
}
}
class ButtonListener1 implements OnClickListener{
public void onClick(View arg0) {
// TODO Auto-generated method stub
TextView tvView = (TextView)findViewById(R.id.textView1);
tvView.setText("按下了按钮2");
}
}
}
[解决办法]
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
counterText = (TextView)findViewById(R.id.textview_counter);
startButton = (Button)findViewById(R.id.button_start);
stopButton = (Button)findViewById(R.id.button_stop);
startButton.setOnClickListener(this);
stopButton.setOnClickListener(this);
startButton.setEnabled(true);
stopButton.setEnabled(false);
Intent bindIntent = new Intent(MainActivity.this, CounterService.class);
bindService(bindIntent, serviceConnection, Context.BIND_AUTO_CREATE);
Log.i(LOG_TAG,"Main Activity Created.");
EditText et = new EditText(this);
et.setInputType(InputType.TYPE_CLASS_NUMBER);
et.getInputType();
}
@Override
public void onClick(View arg0) {
if(arg0.equals(startButton)){
if(counterService!=null){
counterService.startCounter(0);
startButton.setEnabled(false);
stopButton.setEnabled(true);
}
}else if(arg0.equals(stopButton)){
if(counterService!=null){
counterService.stopCounter();
try {
Thread.sleep(900);
stopButton.setEnabled(false);
startButton.setEnabled(true);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
[解决办法]
运行了下你后面的代码,只要把
TextView tvView = (TextView)findViewById(R.id.textView1); 改成
TextView tvView = null;
然后在OnCreate()中添加
tvView=(TextView)findViewById(R.id.textView1);
是完全可以运行的!