gpt4 book ai didi

java - Android Studio - 关闭芯片图标不执行任何操作(Java)

转载 作者:行者123 更新时间:2023-12-01 16:36:07 25 4
gpt4 key购买 nike

我创建了一些Chips,它们的右侧有一个 X 符号。
但是当我单击 X(打算关闭或移除芯片)时,什么也没有发生。
我尝试使用方法 setOnCloseIconClickListener 但没有效果。
我单击 X 图标,图标的颜色发生变化,并出现咔嗒声,但芯片 View 仍保留在屏幕上。
而且我也不知道点击监听器的回调方法要写什么。

        for(int i = 0; i<products.length; i++) {
//the chip component requires your app theme to be Theme.MaterialComponents (or a
//descendant)
chips[i] = new Chip(this);
//ScrollView can only host one direct child
ll1.addView(chips[i]);
chips[i].setText(products[i]);
chips[i].setCloseIconVisible(true);
}


我尝试了这个,但它说变量 i 必须是最终的,这是不可能的,因为 i 正在递增。

            chips[i].setOnCloseIconClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
chips[i].close();
}
});

最佳答案

我找到了解决方案。这是代码:

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

private EditText et1;
private ScrollView sv1;
private LinearLayout ll1;
private Chip[] chips;

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

et1 = findViewById(R.id.editText);
sv1 = findViewById(R.id.scrollView);
ll1 = new LinearLayout(this);
ll1.setOrientation(LinearLayout.VERTICAL);
sv1.addView(ll1);
}

public void splitToChips(View v) {
String content = et1.getText().toString();
String[] products = content.split(";");

chips = new Chip[products.length];

for(int i = 0; i<products.length; i++) {
chips[i] = new Chip(this);
ll1.addView(chips[i]);
chips[i].setText(products[i]);
chips[i].setCloseIconVisible(true);
chips[i].setOnCloseIconClickListener(this);
}
}

@Override
public void onClick(View v) {
Chip chip = (Chip) v;
ll1.removeView(chip);
}
}

关于java - Android Studio - 关闭芯片图标不执行任何操作(Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61943183/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com