当前位置: 首页 > 知识库问答 >
问题:

OnClickListener在带有片段的活动中不起作用

林鸿彩
2023-03-14

我有使用碎片的活动。但如果我想使用OnClickListener,我的应用程序就会崩溃。如果我不使用OnClickListener,那么一切都可以。我该如何解决这个问题呢?这是我的代码。

public class MeinActivity extends Activity {
    public static Context appContext;


@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);


  FragmentManager fragmentManager = getFragmentManager();
    FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();   
    MainFragment meinfragment = new MainFragment();    
    fragmentTransaction.replace(android.R.id.content, meinfragment);             
    fragmentTransaction.commit();


   Button btn = (Button) findViewById(R.id.leftButton);
   btn.setOnClickListener(new OnClickListener() {
       public void onClick(View v) {
           Intent intent = new Intent(MeinActivity.this, SearchActivity.class);
           startActivity(intent);

       }
       });



    }

}

d/gralloc_goldfish(796):检测到没有GPU仿真的仿真程序。d/AndroidRuntime(923):Threadid=1:线程退出但未捕获异常(组=0x41465700)致命异常:Mainjava.lang.RuntimeException:无法启动activity ComponentInfo{bot/bot.MeinActivity}:java.lang.NullPoInterExceptionat Android.app.ActivityThread.PerformLaunchActivity(ActivityThread.java:2211)at Android.app.ActivityThread.HandleLaunchActivity(Dalvik.System.NativeStart.Main(本机方法)处的t.Main(zygoteInterExceptionat bot.MeinActivity.OnCreate(MeinActivity.java:49)处的Android.app.Activity.PerformCreate(Activity.java:5133)处的Android.app.Instrumentation.CallActivityCreate(Instrumentation.java:1087)处的Android.app.ActivityThread.PerformLaunchActivity(ActivityThread.java:2175)处的

共有1个答案

步兴德
2023-03-14

您没有在活动的oncreate()中设置内容视图,因此无法找到按钮,因此btn为空。

super.onCreate(savedInstanceState);
setContentView(R.layout.yourlayout);  // <-- add this line

如果按钮位于片段中,则应将OnClickListener的代码移动到片段类中。

 类似资料:
  • 我试图在片段中的RecyyerView上设置一个click listener我不知道如何调用片段中的活动我只知道在构造函数中解析上下文,但clickListener以前没有这样做,我试过了,但它根本不起作用 我怎么能做到这一点我试过男人的事情它不起作用 如果我这样做,它会显示红线。在getContext()下;

  • 我所拥有的是左导航菜单,我使用抽屉菜单,它可以很好地与片段,我有五个按钮,每个按钮打开一个片段,但现在我希望每个案例打开一个活动,而不是片段,我已经尝试使用意图,但它不起作用!!这是我的代码: 那么,我应该在这段代码中修改什么,使它可以打开一个活动而不是片段???有人能帮我吗?

  • 2)如果困境是真的,为什么事情要这样设置?谷歌计划反对TabHost和基于标签的多活动方法吗?多活动方法有什么不愉快的地方吗? 3)如果继续支持这两种方法,它们的优缺点是什么?如果我使用ActionBar+片段,我会遇到任何困难吗?例如,当我想让我的一个选项卡屏幕滑过/弹出一个额外的屏幕/片段时,我会不会在ActionBar中切换到/从选项卡中切换到选项卡?

  • 有什么理由不不分青红皂白地这样做而不重新评估我使用片段的每个单独的情况吗?

  • 我有一个活动a,一个列表片段P和两个片段Q和R。 当应用程序启动时,会创建一个,加载P。根据用户点击的内容,它被Q或R取代。 现在,通过参考本教程,我实现了一个导航抽屉,向用户显示某些项目。然而,由于我在活动中实现了导航抽屉,它显示了所有片段。我希望它只对P可用。 (非常类似于谷歌Gmail应用程序。当用户在主屏幕上时,抽屉就出现了。当用户点击打开电子邮件时,抽屉就会切换到后退按钮) 我不知道如何