0

我有列表视图:

<ListView android:id="@+id/listview"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

我在其中添加了一些项目:

    final ArrayList<String> list = new ArrayList<String>();
    for (int i = 0; i < items.length(); ++i) {
        try {
            list.add(items[i].getString("title"));
        } catch (JSONException e) {
            e.printStackTrace();
        }
    }
    final StableArrayAdapter adapter = new StableArrayAdapter(this,
        android.R.layout.simple_list_item_1, list);
    listview.setAdapter(adapter);

但现在我想在列表中添加一些TextViews(例如if(i==5)),比如标签。它不应该是可点击的。我怎样才能添加它?

4

2 回答 2

0
listview.setOnItemClickListener(new OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> arg0, View view, int arg2,long arg3) 
{
 long pos = arg0.getItemIdAtPosition(arg2);
if(pos != 5)
    {
    //add textview
    }
    else
    {
    //nothing
    }
}
});
于 2013-06-11T08:39:25.537 回答
0

您应该使用自定义行布局而不是android.R.layout.simple_list_item_1,例如 row.xml 您有一个文本视图,其可见性默认设置为消失:

<?xml version="1.0" encoding="UTF-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >

    <TextView
        android:id="@+id/nonclickable_text"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:visibility="gone"/>

    <TextView
        android:id="@+id/normal_text"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>

将它放在 res/layout/ 文件夹中,然后在创建 StableArrayAdapter 时调用R.layout.row而不是调用。android.R.layout.simple_list_item_1在 getView() 方法中

@Override
  public View getView(final int position, View convertView, ViewGroup parent) {

    if(convertView==null) {
        LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        convertView = inflater.inflate(R.layout.row, parent,false);
    }

    if(int position==5) {
        TextView tv = (TextView)convertView.findViewById(R.id.nonclickable_text);
        tv.setVisibility(View.VISIBLE);
    }
于 2013-06-11T08:44:43.243 回答