我在assets文件夹的子文件夹中有四个文件。我写了这段代码
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
if (convertView == null){
convertView = LayoutInflater.from(context).inflate(R.layout.item_list, parent, false);
}
final TextView textView1 = (TextView) convertView.findViewById(R.id.textView1);
final TextView textView2 = (TextView) convertView.findViewById(R.id.textView2);
final Button show = (Button) convertView.findViewById(R.id.show1);
final Button hide = (Button) convertView.findViewById(R.id.hide1);
textView1.setText(data[position]);
show.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
show.setVisibility(View.INVISIBLE);
hide.setVisibility(View.VISIBLE);
try{
Resources resources = getResources();
AssetManager assetManager = resources.getAssets();
String fileList[] = assetManager.list("latest_trials");
if (fileList != null){
for (int i = 0; i < fileList.length; i++){
Log.v("Files", fileList[i]);
}
}
InputStream inputStream;
try{
inputStream = assetManager.open(fileList[position]);
byte[] buffer = new byte[inputStream.available()];
inputStream.read(buffer);
String value = new String(buffer);
textView2.setMaxLines(Integer.MAX_VALUE);
textView2.setVisibility(View.VISIBLE);
textView2.setText(value);
}catch (IOException e){
e.printStackTrace();
}
}catch (IOException e){
e.printStackTrace();
}
}
});
所有文件都列出正确,并希望在listview中的textview中显示文件内容,但不读取文件并显示FileNotFoundException。请一些帮助..
答案 0 :(得分:0)
一旦你的getview结束,那么位置值就会变成最后一个值。如果你点击它,它将始终指向最后一个值。
因此,按setTag()
按钮标记位置,然后按getTag()
只需调试并检查fileList[]
的最后一个值是什么。
做这样的事情 -
show.setTag(position)
show.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int pos = Integer.parseInt(v.getTag());