Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/207.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.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
Java 在android中交换按钮的位置_Java_Android - Fatal编程技术网

Java 在android中交换按钮的位置

Java 在android中交换按钮的位置,java,android,Java,Android,因此,我想要实现的是改变按钮的位置。这是我的示例图片: 注意: 我的按钮可以绘制背景,例如,我刚刚上传的按钮上没有背景图像。 默认值 洗牌时: 这就是我正在研究的代码: List<Integer> objects = new ArrayList<Integer>(); objects.add(0); objects.add(1); objects.add(2); objects.add(3

因此,我想要实现的是改变按钮的位置。这是我的示例图片:

注意:
我的按钮可以绘制背景,例如,我刚刚上传的按钮上没有背景图像。

默认值

洗牌时:

这就是我正在研究的代码:

        List<Integer> objects = new ArrayList<Integer>();
        objects.add(0);
        objects.add(1);
        objects.add(2);
        objects.add(3);
        objects.add(4);

    // Shuffle the collection
    Collections.shuffle(objects);

    List<Button> buttons = new ArrayList<Button>();

    buttons.add((Button) findViewById(R.id.bObject1Stage2_1));
    buttons.add((Button) findViewById(R.id.bObject2Stage2_1));
    buttons.add((Button) findViewById(R.id.bObject3Stage2_1));
    buttons.add((Button) findViewById(R.id.bObject4Stage2_1));
    buttons.add((Button) findViewById(R.id.bObject5Stage2_1));

    Collections.shuffle(buttons);

    for (int i = 0; i < objects.size(); i++) {
        //buttons.get(i).setText(objects.get(i).toString());
        buttons.get(i);
    }
List objects=new ArrayList();
对象。添加(0);
增加(1);
增加(2);
增加(3);
增加(4);
//洗牌
集合。洗牌(对象);
列表按钮=新建ArrayList();
按钮。添加((按钮)findViewById(R.id.bObject1Stage2_1));
按钮。添加((按钮)findViewById(R.id.bobObject2Stage2_1));
按钮。添加((按钮)findViewById(R.id.bObject3Stage2_1));
添加((按钮)findViewById(R.id.bobObject4Stage2_1));
按钮。添加((按钮)findViewById(R.id.bobObject5Stage2_1));
收藏。洗牌(按钮);
对于(int i=0;i
但它不会改变按钮的位置。我在这里错过了什么?非常感谢您的帮助。谢谢。

用于在要移动的按钮之间切换值,并使用方法应用它们

这将允许您切换2个按钮的位置。要对它们进行洗牌,您必须准备一些算法来生成开关的数量

RelativeLayout.LayoutParams params1 = (RelativeLayout.LayoutParams) b1.getLayoutParams();
RelativeLayout.LayoutParams params2 = (RelativeLayout.LayoutParams) b2.getLayoutParams();

b1.setLayoutParams(params2);
b2.setLayoutParams(params1);
仅当这些按钮彼此不相关时,此操作才有效。 例如,如果b2是相对于b1的,因此它位于b1之下,则必须使用方法将b1设置为低于b1,并使用b2上的removeRule使其不再相对于b1

例如,您在xml中使用了

 <Button
android:id="@+id/bObject2Stage2_1"
/*...*/
android:layout_toRightOf="@+id/bObject1Stage2_1" />
用于在要移动的按钮之间切换值,并使用方法应用这些值

这将允许您切换2个按钮的位置。要对它们进行洗牌,您必须准备一些算法来生成开关的数量

RelativeLayout.LayoutParams params1 = (RelativeLayout.LayoutParams) b1.getLayoutParams();
RelativeLayout.LayoutParams params2 = (RelativeLayout.LayoutParams) b2.getLayoutParams();

b1.setLayoutParams(params2);
b2.setLayoutParams(params1);
仅当这些按钮彼此不相关时,此操作才有效。 例如,如果b2是相对于b1的,因此它位于b1之下,则必须使用方法将b1设置为低于b1,并使用b2上的removeRule使其不再相对于b1

例如,您在xml中使用了

 <Button
android:id="@+id/bObject2Stage2_1"
/*...*/
android:layout_toRightOf="@+id/bObject1Stage2_1" />


我建议您使用布局来更改按钮方向。。。以前的帖子应该有助于在其上重命名它click@AurA我不打算仅仅更改按钮的文本,但我想做的是更改position@CobraAjgar我更新了我的帖子,因为我的计划是改变位置,而不是文本或重命名它们。因为每个按钮都有一个背景绘图。我想改变他们的位置。试试这个,我建议你使用布局来改变按钮方向。。。以前的帖子应该有助于在其上重命名它click@AurA我不打算仅仅更改按钮的文本,但我想做的是更改position@CobraAjgar我更新了我的帖子,因为我的计划是改变位置,而不是文本或重命名它们。因为每个按钮都有一个背景绘图。我想改变他们的位置。试试这个。你能给我一些教程,让我开始切换两个按钮的位置吗?我没有任何教程的链接,但这很简单。在大多数情况下,你只需要为每个按钮,并把它传递给另一个。因为您使用RelativeLayout,以防这些按钮相互关联,所以您必须先编辑relativeTo参数,然后再将其设置为viewCheck,希望这有帮助。谢谢,如果您说我必须在RelativeLayout中添加addRule,您认为我应该将布局更改为linearlayout吗?我不知道,选择一个适合你的需要,你觉得舒服的。你能给我一些教程,让我开始切换两个按钮的位置吗?我没有任何教程的链接,但这很简单。在大多数情况下,你只需要为每个按钮,并把它传递给另一个。因为您使用RelativeLayout,以防这些按钮相互关联,所以您必须先编辑relativeTo参数,然后再将其设置为viewCheck,希望这有帮助。谢谢,如果您说我必须在RelativeLayout中添加addRule,您认为我应该将布局更改为linearlayout吗?我不知道,选择一个适合你的需要,你觉得舒服的。