所以我已经工作了一段时间,似乎无法弄清楚这个darn ListView业务.. 我有它在另一个应用程序工作,但当我复制粘贴(我知道)它没有工作。 所以在环顾了大约6个小时后,我决定来这里。
此代码执行时没有错误,但在ListView上不显示任何内容。我最终想要做的是在底部添加一个按钮,与ListView分开。
(P.S)我制作了8个空格,就像我应该有的那样,我不知道为什么代码没有显示,这就是我今天的运气。
这是Java代码:
Edit: posted the wrong files, here is the right code. (broken)
public class ShittyAdapter extends ListActivity{
Context context;
public ShittyAdapter(){
context = this;
}
//variables go here
String[] temp;
ArrayList<SearchResults> results = new ArrayList<SearchResults>();
SearchResults sr1 = new SearchResults();
// called when the activity starts
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
init();
this.setListAdapter(new ArrayAdapter<String>(this,
R.layout.searchbutton, R.id.label, convertAryList()));
}
@SuppressWarnings({ "rawtypes" })
private ArrayList prepareList(){
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
sr1 = new SearchResults();
sr1.setName(prefs.getString("name", "0"));
...
sr1.setEmail(prefs.getString("email", "0"));
return results;
}
public String[] convertAryList(){
prepareList();
temp = new String[] {...args...};
System.out.println(temp);
return temp;
}
@Override
protected void onListItemClick(ListView l, View v, int position, long id){
super.onListItemClick(l, v, position, id);
//get clicked item
Object o = this.getListAdapter().getItem(position);
String keyword = o.toString();
Toast.makeText(this, "You selected: "+ keyword,
Toast.LENGTH_LONG).show();
switch(position){
case 0: //food
Intent intent = new Intent(context, ShittyAdapter.class);
startActivity(intent);
break;
//ToDo cases for others
default:
}
}
}
这是xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content" android:layout_height="wrap_content">
<TextView android:text="@+id/TextView01" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:id="@+id/label"
android:textSize="30px"></TextView>
</LinearLayout>
答案 0 :(得分:1)
在CustomBaseAdapter中尝试以下操作。
getCount()
return 10;
getView()
View v = new View();
//Fill width, 100px height
v.setLayoutParams(new ListView.LayoutParams(ListView.LayoutParam.FILL_PARENT,100));
v.setBackgroundColor(Color.GREEN); //Ord a random color
return v;
不好意思,但是如果你的适配器只包含那个,它应该使列表成为10个绿色矩形。
从那里你可以开始做更高级的事情。