2013-05-06 35 views
0

我正在开发第一个android应用程序,我有一个片段类,它扩展了SherlockListFragment。当我在onCreateView中设置setOnItemClickListener并执行onItemClick当我点击一行(列表)时,我没有收到任何回应。列表显示正确在我的应用程序。我想要当用户点击行表格listview我的另一个活动会打电话。我瞪了很多眼睛,但没有得到正确的答案。 我不明白问题在哪里。任何人都可以告诉我在下面的代码中我做错了什么?setOnItemClickListener未在onCreatView方法中调用?

以下是我的代码

public class ResidentialFragActivity extends SherlockListFragment { 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle saved) { 

    View view = inflater.inflate(R.layout.project_list,container, false); 
    resListviewId = (ListView)view.findViewById(android.R.id.list); 
    linearProgress = (LinearLayout)view.findViewById(R.id.linlaHeaderProgress); 
    projectList = new ArrayList<HashMap<String,String>>(); 

    new LoadProjects().execute(); 
    resListviewId.setOnItemClickListener(new android.widget.AdapterView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> arg0, View view, int arg2, 
       long arg3) { 
      Intent href = new Intent(getSherlockActivity(), ProjectDetailActivity.class); 

      // send project id to project detail activity to get list of Phases under that project 
      String proj_id = ((TextView) view.findViewById(R.id.projectId)).getText().toString(); 

      href.putExtra("proj_id", proj_id);  
      getSherlockActivity().startActivity(href); 
     } 
    }); 
    return view; 
} 


//inner class for network operation 
private class LoadProjects extends AsyncTask<String, String, String> { 

    protected void onPreExecute() { 
     linearProgress.setVisibility(View.VISIBLE); 
    } 

    @Override 
    protected String doInBackground(String... params) { 

     //call webservice 
    } 

    @Override 
    protected void onPostExecute(String result) { 
     linearProgress.setVisibility(View.GONE); 

     ListAdapter projAdapter = new SimpleAdapter(getSherlockActivity(), 
       projectList, R.layout.project_list_item, 
       new String[] {PROJ_ID,PROJ_NAME,EDIT_RIGHTS}, new int[] 
         {R.id.projectId,R.id.projectName,R.id.projectSubName}); 
     //updating the UI 
     setListAdapter(projAdapter); 
    } 
     } 
} 

以下是布局列表视图

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:layout_marginTop="10dp" 
    android:background="@color/White" 
    android:orientation="vertical" > 

    <ListView 
     android:id="@android:id/list" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginLeft="1dp" 
     android:divider="@drawable/divider" 
     android:focusableInTouchMode="true"  
     android:smoothScrollbar="true" 
     android:dividerHeight="1.5dp" 
     android:scrollbarThumbVertical="@drawable/divider" 
     android:drawSelectorOnTop="false" 
     android:listSelector="@drawable/list_selector"> 
    </ListView> 

</LinearLayout> 

在此先感谢..

+0

你能尝试添加机器人:点击=“true”以你的ListView – wrecker 2013-05-06 09:50:49

+0

仍然没有BugraOral – 2013-05-06 09:53:14

回答

1

,你应该重写onListItemClick,而不是代替resListviewId.setOnItemClickListener ..作为您正在将适配器设置为默认值setListAdapter(projAdapter);

@Override 
public void onListItemClick(ListView l, View v, int position, long id) { 
     Intent href = new Intent(getSherlockActivity(), ProjectDetailActivity.class); 

     // send project id to project detail activity to get list of Phases under that project 
     String proj_id = ((TextView) view.findViewById(R.id.projectId)).getText().toString(); 

     href.putExtra("proj_id", proj_id);  
     startActivity(href); 
} 
+0

我已经使用getListView()setOnItemClickListener但遇到异常.. – 2013-05-06 09:54:32

+0

什么是例外 – Nermeen 2013-05-06 09:55:13

+0

异常喜欢了java.lang.RuntimeException。 :无法启动活动ComponentInfo {com.ojaswitech.bookinscape/com.ojaswitech.bookingscape.ProjectFragActivity}:java.lang.IllegalStateException:内容视图尚未创建 at android.support.v4.app.ListFragment.ensureList(ListFragment.java :328) E/AndroidRuntime(455):在android.support.v4.app.ListFragment.getListView(ListFragment.java:222) – 2013-05-06 09:59:33