我想写两个按钮,用设置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");
        }
    }}

解决方案 »

  1.   

    TextView一般我们会声明成MainActivity的属性
    private static final int MENU_QUIT = 0;在他下面写private TextView tvView;tvView = (TextView)findViewById(R.id.textView1);
    我们一般都把这句话放在onCreat里底下那个class不要了,这么写。
    btn1.setOnClickListener(new OnClickListener() { @Override
    public void onClick(View arg0) {
    tvView.setText("按下了按钮1");
    }
    });
      

  2.   


    伤不起啊,我发现问题是在Listener那边,如果我设置两个监听器就会停止运行,一个监听器就能正常运行,环境安卓4.0.3,代码环境也是设置的4.0.3package 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 {
    TextView tvView = (TextView)findViewById(R.id.textView1);
    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);
    Button btn2 = (Button)findViewById(R.id.button2);
    btn1.setOnClickListener(new ButtonListener());
    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
              tvView.setText("按下了按钮1");
            }
        }

    class ButtonListener1 implements OnClickListener{
            public void onClick(View arg0) {
          // TODO Auto-generated method stub
              tvView.setText("按下了按钮2");
            }
        }}
      

  3.   

    真没用过你这种方法实现按钮监听。你可以去网上搜搜,有很多种办法能够实现onClick事件。
      

  4.   

        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();
    }
    }
    }

    }
      

  5.   

    运行了下你后面的代码,只要把 
    TextView tvView = (TextView)findViewById(R.id.textView1); 改成
     TextView tvView = null; 
    然后在OnCreate()中添加
     tvView=(TextView)findViewById(R.id.textView1); 
    是完全可以运行的!