我已經動態創建了所有已安裝應用程序的checkedtextview。我想知道如何知道用戶點擊了checkedtextview。我已經搜索並找不到解決方案。有人能給我一個例子嗎?知道點擊了checkedtextiew時
ScrollView sv = new ScrollView(this);
LinearLayout ll = new LinearLayout(this);
ll.setOrientation(LinearLayout.VERTICAL);
sv.addView(ll);
final PackageManager pm = getPackageManager();
List<ApplicationInfo> packages = pm.getInstalledApplications(PackageManager.GET_META_DATA);
for (ApplicationInfo packageInfo : packages) {
CheckedTextView ctv = new CheckedTextView(this);
ctv.setText(packageInfo.packageName);
ctv.setCheckMarkDrawable (android.R.drawable.checkbox_on_background);
ctv.setHeight(80);
ctv.setTextSize(35);
ll.addView(ctv);
}
this.setContentView(sv);
這是做什麼,但似乎不是正確的方式?
for (ApplicationInfo packageInfo : packages) {
CheckedTextView ctv = new CheckedTextView(this);
ctv.setText(packageInfo.packageName);
ctv.setCheckMarkDrawable (android.R.drawable.checkbox_on_background);
ctv.setHeight(80);
ctv.setTextSize(35);
ctv.setOnTouchListener(new OnTouchListener(){
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
// Toggle the checked state of the button
CheckedTextView ctv = (CheckedTextView) v;
if (ctv.isSelected()) {
ctv.setSelected(false);
ctv.setCheckMarkDrawable(android.R.drawable.checkbox_off_background);
} else {
ctv.setSelected(true);
ctv.setCheckMarkDrawable(android.R.drawable.checkbox_on_background);
}
}
return true;
}
});
ll.addView(ctv);
}
this.setContentView(sv);
這是Android嗎?如果是這樣,你應該標記它。 –