我在列表视图中有一个搜索栏,它被禁用以阻止用户在滚动列表时更改值。如果长按列表项,我希望启用它,允许用户更改它,然后再次禁用它。
任何建议。
我似乎无法从活动中访问搜索栏,因为它在ArrayAdapter中设置以显示数据库中的值
我能够为列表项触发点击事件和长按事件,因为当前禁用了搜索栏。
答案 0 :(得分:7)
在ArrayAdapter中,我将enabled和focusable都设置为false并添加了SeekBar监听器,将属性设置为false允许我使用列表项onItemClicked监听器。在onItemCLickListener中,我检索了搜索栏,将属性设置为true,这意味着它可以向上或向下滑动。然后我在调整完成后禁用了它。代码
此代码位于列表项的创建中,其中搜索栏位于其中
seekBar.setClickable(false);
seekBar.setFocusable(false);
seekBar.setEnabled(false);
/* attach listener */
attachProgressUpdatedListener(seekBar, positionOfItemInList);
此方法将侦听器附加到arrayAdapter类
内的搜索条private void attachProgressUpdatedListener(SeekBar seekBar,
final int position) {
seekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
public void onStopTrackingTouch(SeekBar seekBar) {
int progress = seekBar.getProgress();
int task_id = (Integer) seekBar.getTag();
TaskHandler taskHandler = new TaskHandler(DBAdapter
.getDBAdapterInstance(getContext()));
taskHandler.updateTaskProgress(task_id, progress);
mList.get(position).setProgress(progress);
//need to fire an update to the activity
notifyDataSetChanged();
seekBar.setEnabled(false);
}
public void onStartTrackingTouch(SeekBar seekBar) {
// empty as onStartTrackingTouch listener not being used in
// current implementation
}
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {
// empty as onProgressChanged listener not being used in
// current implementation
}
});
}
此剪辑来自列出视图的活动。
taskListView.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
SeekBar sb = (SeekBar) view.findViewById(R.id.seek);
sb.setFocusable(true);
sb.setEnabled(true);
}
});
答案 1 :(得分:0)
我通过将以下属性设置为seekbar
项目布局文件中的listview
来克服此问题。然后我发现了click
listitem
事件seekbar
和 android:focusable="false"
android:focusableInTouchMode="false"
<SeekBar
android:id="@+id/playback_icon"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:progress="0"
android:progressDrawable="@drawable/red_scrubber_progress"
android:thumb="@drawable/red_scrubber_control"
android:focusable="false"
android:focusableInTouchMode="false"/>
。
_id,official_name,common_name,country,started_by.day,started_by.month,started_by.year,championship,stadium.name,stadium.capacity,palmares.first_prize,palmares.second_prize,palmares.third_prize,palmares.fourth_prize,average_age,squad_value,foreigners,uniform
0,yaDIXxLAOV,WWYWLqPcYM,QsVwiNmeGl,7,9,1479,oYKGgstIMv,qskcxizCkd,8560,10,25,9,29,16,58,6,"[""first_colour"",""second_colour"",""third_colour""]"