Java 用按钮链接气泡选择器中的气泡

Java 用按钮链接气泡选择器中的气泡,java,android,button,Java,Android,Button,我使用气泡选择器库。我希望能够将我的气泡选择器(我有10个)中的每个气泡与一个按钮链接,该按钮将执行10个活动中的另一个 我想你必须给OnBubbleSelected添加一些代码 另外,我对编码是新手,所以我很难这么做。谢谢你的回答 public class Main777Activity extends AppCompatActivity { BubblePicker picker; @Override protected void onCreate(Bundl

我使用气泡选择器库。我希望能够将我的气泡选择器(我有10个)中的每个气泡与一个按钮链接,该按钮将执行10个活动中的另一个

我想你必须给OnBubbleSelected添加一些代码

另外,我对编码是新手,所以我很难这么做。谢谢你的回答

public class Main777Activity extends AppCompatActivity {


    BubblePicker picker;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main777);

        final String[] titles = getResources().getStringArray(R.array.hashtags);
        final TypedArray colors = getResources().obtainTypedArray(R.array.colors);

        picker = findViewById(R.id.picker);
        picker.setAdapter(new BubblePickerAdapter() {
            @Override
            public int getTotalCount() {
                return titles.length;
            }

            @NotNull
            @Override
            public PickerItem getItem(int position) {
                PickerItem item = new PickerItem();
                item.setTitle(titles[position]);
                item.setGradient(new BubbleGradient(colors.getColor((position * 2) % 8, 0),
                        colors.getColor((position * 2) % 8 + 1, 0), BubbleGradient.VERTICAL));
                item.setTextColor(ContextCompat.getColor(Main777Activity.this, android.R.color.white));
                return item;
            }



        });


        picker.setBubbleSize(45);
        picker.setSwipeMoveSpeed(2f);
        picker.setAlwaysSelected(false);
        picker.setMaxSelectedCount( 1 );



        picker.setListener(new BubblePickerListener() {
            @Override
            public void onBubbleSelected(@NotNull PickerItem item) {
                picker.getSelectedItems();
                picker.setListener(this);

            }

            @Override
            public void onBubbleDeselected(@NotNull PickerItem item) {

            }
        });
    }
    @Override
    protected void onResume() {
        super.onResume();
        picker.onResume();
    }

    @Override
    protected void onPause() {
        super.onPause();
        picker.onPause();
    }
}

欢迎来到Stackoverflow社区

现在,您希望为每个选定的气泡项目启动不同的活动;如果我错了,请纠正我

为此,您需要在
BubblePicker
小部件的
BubblePickerListener
onBubbleSelected()
中启动活动意图,并利用
item
参数区分项目;您可以使用
item.getTitle()
进行此操作

为此:

picker.setListener(new BubblePickerListener() {
    @Override
    public void onBubbleSelected(@NotNull PickerItem item) {

        if (item.getTitle() != null) {
            switch(item.getTitle()) {

                case "item1":
                    // start activity of item1 
                    break;

                case "item2":
                    // start activity of item2
                    break;

                case "item3":
                    // start activity of item3
                    break;
            }

        }
    }

    @Override
    public void onBubbleDeselected(@NotNull PickerItem item) {

    }
});
下面是一个完整的示例,所有项目都使用一个单独的活动,但为每个项目传递不同的值(项目标题)

它看起来怎么样

布局

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <com.igalata.bubblepicker.rendering.BubblePicker
        android:id="@+id/picker"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:backgroundColor="@android:color/white"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>
平面触觉

public class PlanetActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_planet);

        ((TextView) findViewById(R.id.title)).setText(getIntent().getStringExtra("planet"));

    }
}
资源

strings.xml

<resources>
    <string name="app_name">BubblePickerLibrary</string>
    <string name="earth">Earth</string>
    <string name="moon">Moon</string>
    <string name="jupiter">Jupiter</string>
    <string name="mercury">Mercury</string>
    <string name="venus">Venus</string>
    <string name="mars">Mars</string>
    <string name="saturn">Saturn</string>
    <string name="uranus">Uranus</string>
    <string name="neptune">Neptune</string>


    <string-array name="planets">
        <item>@string/earth</item>
        <item>@string/moon</item>
        <item>@string/mercury</item>
        <item>@string/venus</item>
        <item>@string/mars</item>
        <item>@string/saturn</item>
        <item>@string/uranus</item>
        <item>@string/neptune</item>
    </string-array>

</resources>
项目级

allprojects {
    repositories {
        google()
        jcenter()
        maven { url "https://jitpack.io" }
    }
}

您能否提供一些示例,说明如何编写当前执行的代码及其输出?提供所需的电流输出将有助于明确ask。如果有错误,请添加其stacktrace。
<resources>
    <string name="app_name">BubblePickerLibrary</string>
    <string name="earth">Earth</string>
    <string name="moon">Moon</string>
    <string name="jupiter">Jupiter</string>
    <string name="mercury">Mercury</string>
    <string name="venus">Venus</string>
    <string name="mars">Mars</string>
    <string name="saturn">Saturn</string>
    <string name="uranus">Uranus</string>
    <string name="neptune">Neptune</string>


    <string-array name="planets">
        <item>@string/earth</item>
        <item>@string/moon</item>
        <item>@string/mercury</item>
        <item>@string/venus</item>
        <item>@string/mars</item>
        <item>@string/saturn</item>
        <item>@string/uranus</item>
        <item>@string/neptune</item>
    </string-array>

</resources>
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="colorPrimary">#008577</color>
    <color name="colorPrimaryDark">#00574B</color>
    <color name="colorAccent">#D81B60</color>
    <color name="earth">#ffe3e9</color>
    <color name="moon">#ffd014</color>
    <color name="mercury">#009999</color>
    <color name="venus">#990000</color>
    <color name="mars">#808080</color>
    <color name="saturn">#ff00ff</color>
    <color name="uranus">#800080</color>
    <color name="neptune">#00ffff</color>


    <string-array name="colors">
        <item>@color/earth</item>
        <item>@color/moon</item>
        <item>@color/mercury</item>
        <item>@color/venus</item>
        <item>@color/mars</item>
        <item>@color/saturn</item>
        <item>@color/uranus</item>
        <item>@color/neptune</item>
    </string-array>


</resources>
implementation 'com.github.igalata:Bubble-Picker:v0.2.4'
allprojects {
    repositories {
        google()
        jcenter()
        maven { url "https://jitpack.io" }
    }
}