[英]Android Studio - Close Icon of a Chip does not do anything (Java)
我創建了一些Chips
,它們的右側有一個 X 符號。
但是當我點擊 X(打算關閉或移除芯片)時,什么也沒有發生。
我嘗試使用setOnCloseIconClickListener
方法,但沒有效果。
我單擊 X 圖標,圖標顏色發生變化並出現咔噠聲,但芯片視圖仍保留在屏幕上。
而且我也不知道在點擊監聽的回調方法中要寫什么。
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);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.