关于提示eclipse上,“XX出错,程序已停止运行”的原因!

今天写了个小程序,在写按钮监听了时候出现了问题,反复检查代码,发现加上button.setOnClickListener(new Buttonlistener());这句话后,一运行,程序就终止运行,注释掉后,没问题,布局可以显示,本人菜鸟,望大神解答,如对问题有困惑,可指出,一直在,随时恭候。

感觉把你的代码或者log信息粘出来或许更好,这样看不出来你的错误在哪

详细说下,先在布局里添加一个button和textview控件,然后在mainactivity里实现点击按钮设置textview的显示内容,个人感觉思路很简单啊,代码也没报错,就是一运行就终止,实在不知其所以然了。以下是代码,注意中间一行我给注释了,不注释就会运行停止。
package com.wh.test_listener;

import android.app.Activity;
import android.app.ActionBar;
import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.TextView;
import android.os.Build;

public class MainActivity extends Activity {

private Button button;
private TextView textView;

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    button = (Button)findViewById(R.id.button);
    textView = (TextView)findViewById(R.id.textview);

  //  button.setOnClickListener(new Buttonlistener());
    if (savedInstanceState == null) {
        getFragmentManager().beginTransaction()
                .add(R.id.container, new PlaceholderFragment())
                .commit();
    }
}

public class Buttonlistener implements OnClickListener{

@Override
public void onClick(View arg0) {
    textView.setText("NIHAO ");

}

}
@Override
public boolean onCreateOptionsMenu(Menu menu) {

    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    int id = item.getItemId();
    if (id == R.id.action_settings) {
        return true;
    }
    return super.onOptionsItemSelected(item);
}

/**
 * A placeholder fragment containing a simple view.
 */
public static class PlaceholderFragment extends Fragment {

    public PlaceholderFragment() {
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.fragment_main, container, false);
        return rootView;
    }
}

}