我正在使用gridview和layout inflater来显示带有文本的图标。
我指的是:http://mytelcoit.com/2010/02/programming-android-create-icon-with-text-using-gridview-and-layout-inflater/上给出的代码,但区别在于图像和文本都存储在sdcard中。它应该是这样的:
我的文本文件包含以下数据:
Profile 0|Profile 1|Profile 2
我正在使用以下代码:
public View getView(final int position, View convertView, ViewGroup parent) {
View v;
//String text;
final ImageView picturesView;
if (convertView == null) {
LayoutInflater li = getLayoutInflater();
v = li.inflate(R.layout.icon, null);
File sdcard = Environment.getExternalStorageDirectory();
File file = new File(sdcard,"string.txt");
//StringBuilder stext = new StringBuilder();
TextView tv = (TextView)v.findViewById(R.id.icon_text);
try {
BufferedReader br = new BufferedReader(new FileReader(file));
String line;
while ((line = br.readLine()) != null) {
String[] columns = line.split("\\|");
for (String name : columns){
tv.setText(name);
}
//stext.append(line);
//stext.append('\n');
}
}
catch (IOException e) {
//You'll need to add proper error handling here
}
tv.setTextSize(12);
tv.setTextColor(Color.BLACK);
}
else {
v = convertView;
}
}
我想用字符串值
设置文本视图TextView tv = (TextView)v.findViewById(R.id.icon_text);
tv.setText();
我尝试通过Toast.makeText(SDCardImagesActivity.this, ""+columns.length, Toast.LENGTH_LONG).show();
检查列长度,但显示的是1(5次)
我很困惑如何在tv.setText中使用列值以及列数组是否正确。
请帮我解决这个问题
由于
的Pankaj
答案 0 :(得分:1)
查看您引用的代码
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
View v;
if(convertView==null){
LayoutInflater li = getLayoutInflater();
v = li.inflate(R.layout.icon, null);
TextView tv = (TextView)v.findViewById(R.id.icon_text);
tv.setText("Profile "+position);
ImageView iv = (ImageView)v.findViewById(R.id.icon_image);
iv.setImageResource(R.drawable.icon);
}
else
{
v = convertView;
}
return v;
}
而不是这一行...
tv.setText("Profile "+position);
...使用以下内容......
tv.setText(columns[position]);
答案 1 :(得分:0)
将每个文件行的内容存储在columns-array中。 您应该存储此数据以供日后使用,或者在循环中立即设置文本。
答案 2 :(得分:0)
请尝试使用以下代码设置TextView
File sdcard = Environment.getExternalStorageDirectory();
File file = new File(sdcard,"string.txt");
try {
BufferedReader br = new BufferedReader(new FileReader(file));
String line;
while ((line = br.readLine()) != null) {
String delimiter = "\\|";
String[] columns = line.split(delimiter);
for (String name : columns){
tv.setText(name);
}
}
}
catch (Exception e) {
//You'll need to add proper error handling here
e.printStackTrace();
}
由于 迪帕克
答案 3 :(得分:0)
您可以在不创建TextView和ImageVIew的情况下创建上述视图。只需创建一个按钮并使用drawableTop。如果要根据图像设置配置文件名称。如果button1然后button.settext("Profile1")
就像这样创建条件语句。
<Button
android:id="@+id/openpdfbutton"
android:layout_width="100dip"
android:layout_height="60dip"
android:text="Click"
android:tag="@drawable/cancelfocus"
android:drawableTop="@drawable/cancelfocus"
/>
由于 迪帕克