我创建了一个自定义Listview,我想在其中添加下载按钮。当用户单击下载按钮,然后下载该文件,但我该怎么做。我创建了一个下载按钮,但是我不知道如何为该按钮编码。 代码
- name: Set IP Address on Linux
vmware_vm_shell:
vm_shell : /usr/bin/sudo
vm_shell_args : ' /usr/sbin/ifconfig eth0 {{ network.subnet }}.{{ net }} netmask {{ network.netmask }} up'
vm_shell_cwd : /usr/sbin
- name: Wait for SSH port
wait_for:
port: 22
delay: 20
state: started
答案 0 :(得分:0)
创建一个名为OnItemClickListener的接口
在界面内声明一个无效的onItemClick(int position)方法
创建OnItemClickListener接口的成员变量,并将其命名为mOnItemClickListener。
向OnItemClickListener类型的适配器构造函数添加一个新参数,并将其称为侦听器。
通过传递的参数侦听器初始化mItemClickListener。
对于onClick方法内的按钮(在这种情况下为下载按钮),调用mItemClickListener.onItemClick并将位置作为参数传递。
此处代码:
public class ListAdapter extends ArrayAdapter<pdf> {
//... your code
public interface OnItemClickListener{
void onItemClick(int position);
}
private OnItemClickListener mOnItemClickListener;
public ListAdapter(Context context, int resource, List<pdf> pdfList, OnItemClickListener listener) {
super(context, resource, pdfList);
//... your code
mOnItemClickListener = listener;
}
@NonNull
@Override
public View getView(final int position, @Nullable View convertView, @NonNull ViewGroup parent) {
//... you code
ImageButton download = view.findViewById(R.id.download);
download.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
mOnItemClickListener.onItemClick(position);
}
});
return view;
}
}
在“活动”中进行以下更改:
实施ListAdapter.OnItemClickListener
覆盖onItemClick方法
将“ this”作为ListAdapter的最后一个参数传递
让您将其列为活动中的成员变量,并将其命名为mPDF(根据您的情况可能有所不同)
在onItemClick内,您可以编写代码以进行下载或...,并且要知道单击了哪个项目,可以使用position参数。例如mPDF.get(position)将返回单击的pdf。
此处代码示例:
public class MainActivity extends AppCompatActivity
implements ListAdapter.OnItemClickListener {
List<pdf> mPDF;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListAdapter adapter = new ListAdapter(this, R.layout.what_ever, mPDF, this);
}
@Override
public void onItemClick(int position) {
pdf clicked = mPDF.get(position);
// now you can write your download code
}
}
享受吧。