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

标签 java android xml

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

最佳答案

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

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

关于java - 惊喜!!另一个ListView死胡同..LV不会显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7910232/

相关文章:

JAVA - 加速 HashMap 创建

java - 按钮无法解决

android - React Native 应用程序中的 Redux 用例

Android ViewFlipper动画(ViewPage)

javascript - Magento - 分级定价 + 自定义选项?

sql-server - 将 XML 数据分解为 SQL Server 数据库列的最佳方式

Java登录MySQL数据库

java - Findbugs "Method ignores exceptional return value"java.io.File.mkdirs()

java - recyclerview 中的 radio 组不正确

java - 在 Java 中通过正则表达式取消注释 XML 元素