Android:无法访问片段中存在的 ListView 中的按钮
Android: Not Able to Access the button in a ListView present inside a Fragment
我正在尝试访问列表视图中的按钮。单击按钮时,按钮的值应更改为 "Hello"
列表视图是片段的一部分。
适配器接收图像的值、文件名和文件的创建日期。
除了这三个元素之外,还有一个按钮(我将用它来删除文件)
但是我无法访问该按钮。
public class FragmentC extends Fragment implements AdapterView.OnItemClickListener{
ListView list;
public FragmentC() {
// Required empty public constructor
}
String[] days;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
String path = Environment.getExternalStorageDirectory().toString()+"/Notate";
File f = new File(path);
File file[] = f.listFiles();
days=new String[file.length];
Integer[] imageId=new Integer[file.length];
String[] dateTime=new String[file.length];
for (int i=0; i < file.length; i++)
{
String temp=file[i].getName();
String temp2=temp.substring(0,temp.length()-4);
Date lastModDate = new Date(file[i].lastModified());
days[i]=temp2;
imageId[i]=R.drawable.ic_launcher;
dateTime[i]=lastModDate.toString().substring(0,lastModDate.toString().length()-14);
}
final View contextView = inflater.inflate(R.layout.fragment_fragment_c,container,false);
CustomList adapter = new
CustomList(this.getActivity(), days, imageId,dateTime);
list=(ListView) contextView.findViewById(R.id.listView);
list.setAdapter(adapter);
list.setOnItemClickListener(this);
return contextView;
}
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
final Button b1=(Button) view.findViewById(R.id.button1);
b1.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
b1.setText("Hello");
}
});
}
}
在您的 CustomList class 中转到 getview 方法并在该方法集内单击按钮。
在那class你可能会像
那样做
viewHolder.button=(Button)convertView.findViewById(R.id.button);
所以在上面那行下面的 getview 方法中做 like
viewHolder.button.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
viewHolder.button.setText("Hello");
}
});
在您的 CustomList 适配器的 'getView' 中尝试您的代码,像这样
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
.............
....
final Button b1=(Button) view.findViewById(R.id.button1);
b1.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
b1.setText("Hello");
}
});
return convertView;
}
我正在尝试访问列表视图中的按钮。单击按钮时,按钮的值应更改为 "Hello"
列表视图是片段的一部分。
适配器接收图像的值、文件名和文件的创建日期。 除了这三个元素之外,还有一个按钮(我将用它来删除文件)
但是我无法访问该按钮。
public class FragmentC extends Fragment implements AdapterView.OnItemClickListener{
ListView list;
public FragmentC() {
// Required empty public constructor
}
String[] days;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
String path = Environment.getExternalStorageDirectory().toString()+"/Notate";
File f = new File(path);
File file[] = f.listFiles();
days=new String[file.length];
Integer[] imageId=new Integer[file.length];
String[] dateTime=new String[file.length];
for (int i=0; i < file.length; i++)
{
String temp=file[i].getName();
String temp2=temp.substring(0,temp.length()-4);
Date lastModDate = new Date(file[i].lastModified());
days[i]=temp2;
imageId[i]=R.drawable.ic_launcher;
dateTime[i]=lastModDate.toString().substring(0,lastModDate.toString().length()-14);
}
final View contextView = inflater.inflate(R.layout.fragment_fragment_c,container,false);
CustomList adapter = new
CustomList(this.getActivity(), days, imageId,dateTime);
list=(ListView) contextView.findViewById(R.id.listView);
list.setAdapter(adapter);
list.setOnItemClickListener(this);
return contextView;
}
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
final Button b1=(Button) view.findViewById(R.id.button1);
b1.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
b1.setText("Hello");
}
});
}
}
在您的 CustomList class 中转到 getview 方法并在该方法集内单击按钮。 在那class你可能会像
那样做 viewHolder.button=(Button)convertView.findViewById(R.id.button);
所以在上面那行下面的 getview 方法中做 like
viewHolder.button.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
viewHolder.button.setText("Hello");
}
});
在您的 CustomList 适配器的 'getView' 中尝试您的代码,像这样
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
.............
....
final Button b1=(Button) view.findViewById(R.id.button1);
b1.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
b1.setText("Hello");
}
});
return convertView;
}