SetOnClickListener导致无法启动活动组件

时间:2014-07-19 13:19:53

标签: java android eclipse onclicklistener

我目前正在申请,但是我无法启动活动componentsInfo。我在网上找到了很多解决方案,但它们都不适用于我。我尝试清理我的项目文件并重新启动Eclipse,但仍然会出现错误。我尝试使用DDBS调试,然后找到' setOnClickListener'有什么不对劲。我尝试编辑它。但是错误仍然存​​在。

注意:实施view.OnClickListener对我也不起作用。

public class MainActivity extends Activity{
    private Button mBreakfast;
    private Button mLunch;
    private Button mDinner;
    private Button mSnack;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        if (savedInstanceState == null) {
            getFragmentManager().beginTransaction()
                .add(R.id.container, new PlaceholderFragment()).commit();
    }

    mBreakfast = (Button) findViewById(R.id.btn_breakfast);
    mLunch = (Button) findViewById(R.id.btn_lunch);
    mDinner = (Button) findViewById(R.id.btn_dinner);
    mSnack = (Button) findViewById(R.id.btn_snack);


    mBreakfast.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            Intent intent = new Intent(MainActivity.this,RestInfoFragment.class);
            startActivity(intent);

        }
    });
 }
}

3 个答案:

答案 0 :(得分:0)

好吧导入可能是个错误!

如果是这样的话:

import android.content.DialogInterface.OnClickListener; 

更改为:

import android.view.View.OnClickListener;

答案 1 :(得分:0)

RestInfoFragment是一个片段,您想在单击按钮时启动它吗?

没有像使用Intents的活动一样调用片段。要启动片段,请使用以下代码:

getFragmentManager().beginTransaction()
    .replace(R.id.container, new RestInfoFragment).commit();

答案 2 :(得分:0)

从你的命名,我猜RestInfoFragment是一个片段,你在另一个活动中使用按钮点击导航到RestInfoFragment,就像一个Activity。

您不能将Fragment用作活动。更改RestInforFragment以扩展FragmentActivity或在视图中膨胀片段。

如果扩展FragmentActivity,则不需要对当前MainActivity进行任何更改。

如果您正在使用Fragment

getFragmentManager().beginTransaction()
    .replace(R.id.container, new RestInfoFragment).commit();

如果您的RestInfoFragment正在使用整个屏幕,我建议使用FragmentActivity。