惊喜!另一个ListView死胡同.. LV不会显示

时间:2011-10-26 23:42:37

标签: java android xml

所以我已经工作了一段时间,似乎无法弄清楚这个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>

1 个答案:

答案 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个绿色矩形。

从那里你可以开始做更高级的事情。