Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/213.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
创建可点击的android布局_Android_Android Intent_Android Fragments_Android Activity - Fatal编程技术网

创建可点击的android布局

创建可点击的android布局,android,android-intent,android-fragments,android-activity,Android,Android Intent,Android Fragments,Android Activity,我有一个包含两个片段的相对布局。我的java代码旨在根据屏幕的方向决定选择哪个片段。我想在触摸屏幕时让应用程序切换到一个新的活动,但我不知道如何编写代码。我尝试将主活动xml设置为可单击,并在那里设置意图,但它不起作用。我还尝试过允许片段xml可点击,但我无法设置片段java文件的意图。如果有人能帮忙,我的主要活动就是这样 public class StartPage extends Activity { @Override protected void onCreat

我有一个包含两个片段的相对布局。我的java代码旨在根据屏幕的方向决定选择哪个片段。我想在触摸屏幕时让应用程序切换到一个新的活动,但我不知道如何编写代码。我尝试将主活动xml设置为可单击,并在那里设置意图,但它不起作用。我还尝试过允许片段xml可点击,但我无法设置片段java文件的意图。如果有人能帮忙,我的主要活动就是这样

    public class StartPage extends Activity {

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

        RelativeLayout useMe;

        FragmentManager fragmentManager = getFragmentManager();

        FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();

        Configuration configInfo = getResources().getConfiguration();

        if (configInfo.orientation == Configuration.ORIENTATION_LANDSCAPE) {

            StartPageLandscapeFragment startPageLandscapeFragment = new StartPageLandscapeFragment();

            fragmentTransaction.replace(android.R.id.content, startPageLandscapeFragment);

            useMe = (RelativeLayout) findViewById(R.id.startpage_landscape_layout);

        } else {

            StartPagePortraitFragment startPagePortraitFragment = new StartPagePortraitFragment();

            fragmentTransaction.replace(android.R.id.content, startPagePortraitFragment);

            useMe = (RelativeLayout) findViewById(R.id.startpage_portrait_layout);
        }

        fragmentTransaction.commit();

        useMe.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(StartPage.this, Question1.class);

                startActivity(intent);
            }
        });
    }

}

您需要
setContentView(R.layout.your的布局)

您在哪里为您的RelativeLayout设置onClickListener?你需要像这样的东西

useMe.setOnClickListener(new View.OnClickeListener())

经过进一步的调查,我发现我用了一种奇怪的方式使用碎片。我使用片段来确定依赖于方向的布局,而不知道我可以一起使用单独的布局文件夹来实现这一点。我删除了所有的碎片工作,现在一切都很好

您需要设置useMe.setOnClickLIstener(新的OnClickListener{和在onClick方法中发送您的intent@StanislavBondar不走运。我得到了这个错误,我在一个空对象引用上“试图调用虚拟方法'void android.widget.RelativeLayout.setOnClickListener(android.view.view$OnClickListener)'”我这样做了,但仍然没有。你必须在onCreate中设置contentview after super()并选择布局,其中你的相对布局是什么?你会得到什么异常?它必须处理碎片膨胀的问题。因此我认为是我的布局设计导致了错误,所以我现在要回去修复它,并在早上发布我的结果。