2013-03-17 40 views
0

我嘗試列表視圖,但是當我點擊一個元素我沒有我的烤onListItemClick上的活動擴展ListActivity

public class MarkersListActivity extends ListActivity { 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     String[] titles = new String[] {"Titre 1", "Titre 2", "Titre 3", "Titre 4"}; 
     String[] des = new String[] {"des 1", "des 2", "des 3", "des 4"}; 

     setListAdapter(new MarkerListArrayAdapter(this, titles, des)); 

} 

    @Override 
    protected void onListItemClick(ListView l, View v, int position, long id) { 

    //get selected items 
    String selectedValue = (String) getListAdapter().getItem(position); 
    Toast.makeText(this, selectedValue, Toast.LENGTH_SHORT).show(); 

    } 

} 

MarkerListArrayAdapter

public class MarkerListArrayAdapter extends ArrayAdapter<String> { 
private final Context context; 
private final String[] titleText; 
private final String[] descriptionText; 

public MarkerListArrayAdapter(Context context, String[] titles, String[] description) { 
    super(context, R.layout.marker_list_layout, titles); 
    this.context = context; 
    this.titleText = titles; 
    this.descriptionText = description; 
} 

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    LayoutInflater inflater = (LayoutInflater) context 
     .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 

    View rowView = inflater.inflate(R.layout.marker_list_layout, parent, false); 
    TextView title = (TextView) rowView.findViewById(R.id.title); 
    TextView description = (TextView) rowView.findViewById(R.id.description); 
    ImageView imageView = (ImageView) rowView.findViewById(R.id.image); 

    title.setText(titleText[position]); 
    description.setText(descriptionText[position]); 

    imageView.setBackgroundColor(Color.argb(255,255,0,0)); 

    return rowView; 
} 
} 

的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" 
android:padding="5dp" > 

<ImageView 
    android:id="@+id/image" 
    android:layout_width="50dp" 
    android:layout_height="50dp" 
    android:layout_marginLeft="5dp" 
    android:layout_marginRight="20dp" 
    android:layout_marginTop="5dp" 
    android:src="@drawable/transparent" > 
</ImageView> 

<LinearLayout 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" > 

    <TextView 
     android:id="@+id/title" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@+id/label" 
     android:textSize="30sp" > 
    </TextView> 

    <TextView 
     android:id="@+id/description" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@+id/label" 
     android:textSize="15sp" /> 

</LinearLayout> 

</LinearLayout> 

感謝

+0

你能發佈你的列表項目佈局文件嗎? – 2013-03-17 13:14:51

+0

我更新了所有代碼 – Ajouve 2013-03-17 13:26:06

+1

的帖子嘗試將根LinearLayou的'layout_width'設置爲'fill_parent' – 2013-03-17 13:33:11

回答

0

你應該se:

public void onItemClick(AdapterView<?> parent, View v, int position, long id) 

方法代替。

讓你Activityimplements AdapterView.OnItemClickListener

,然後在onCreate添加此命令:

list.setOnItemClickListener(this); 
0

您還沒有叫onListItemClick()超級 ... 如下操作:

protected void onListItemClick(ListView l, View v, int position, long id){ 
    super.onListItemClick(l, v, position, id); 
} 
+1

這是沒有必要的。 'onListItemClick'默認爲空。 – 2013-03-17 13:19:10

+0

我總是有同樣的問題添加超級 – Ajouve 2013-03-17 13:27:03

0

你必須設置setContentView(R.layout.activity_ma在MarkersListActivity類)方法和你的ListView ID應該是 「@android:ID /列表」

添加此佈局activity_main

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingLeft="8dp" 
    android:paddingRight="8dp"> 

<ListView android:id="@android:id/list" //Important this one. 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:background="#00FF00" 
      android:layout_weight="1" 
      android:drawSelectorOnTop="false"/> 

</LinearLayout> 

看一看官方文檔listactivity https://developer.android.com/reference/android/app/ListActivity.html

相關問題