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