2015-04-02 67 views
0

嘿家伙即时通讯问题,从列表视图中删除一个对象,每次按下“删除”按钮时。现在,我用一个简单的吐司消息替换了那些意味着是删除功能的代码,只是为了让我知道该按钮的工作原理,但是屏幕上没有任何东西出现,所以我认为它不起作用。当我点击删除按钮时,没有错误出现在日志猫身上。从列表视图删除项目 - 解析(Android)

我跟着一个解析教程由android开始创建这个简单的列表视图,但想添加更多的功能。

所有的
@Override 
    protected void onPostExecute(Void result) { 
     // Locate the listview in listview_main.xml 
     listView = (ListView) findViewById(R.id.listview); 
     // Pass the results into an ArrayAdapter 
     adapter = new ArrayAdapter<String>(SelectCourse.this, 
       R.layout.listview_item, R.id.text); 
     // Retrieve object "name" from Parse.com database 
     for (ParseObject course : ob) { 
      adapter.add((String) course.get("name")); 
     } 
     // Binds the Adapter to the ListView 
     listView.setAdapter(adapter); 
     // Close the progress dialog 
     mProgressDialog.dismiss(); 
     // Capture button clicks on ListView items 
     listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> parent, View view, 
            final int position, long id) { 
       // Send single item click data to SingleItemView Class 
       Intent i = new Intent(SelectCourse.this, 
         SingleItemView.class); 
       // Pass data "name" followed by the position 
       i.putExtra("name", ob.get(position).getString("name") 
         .toString()); 

       // Open SingleItemView.java Activity 
       startActivity(i); 

       //locate delete button 
       deleteBtn = (Button) findViewById(R.id.delete); 

       //create on click listener for the delete button 
       deleteBtn.setOnClickListener(new View.OnClickListener() { 
        @Override 
        public void onClick(View v) { 
         View parentRow = (View) v.getParent(); 
         ListView listView1 = (ListView) parentRow.getParent(); 
         final int position = listView1.getPositionForView(parentRow); 
         Toast.makeText(getApplicationContext(), "Successfully Deleted", Toast.LENGTH_LONG).show(); 

        } 
       }); 
      } 



     }); 

回答

0

首先,它会更好,如果你没有在listviewitemOnClickListener添加按钮onclicklistener

相反,覆盖适配器的getView方法,有你应该使用下面的设置onclicklistener上的按钮类似下面

adapter = new ArrayAdapter<String>(SelectCourse.this, 
       R.layout.listview_item, R.id.text) { 

@Override 

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

deleteBtn = (Button) view.findViewById(R.id.delete); 

// add your button onclicklistener here 
return super.getView(position, convertView, parent); 

} 

}; 
+0

感谢您的答复,我只是想上面的代码,它仍然犯规似乎工作:(。你认为这是值得我把xml布局文件在我的问题,以及所以你可以看到如何一个ID的东西? – hero8110 2015-04-02 15:16:10

+0

Overrode getView? – 2015-04-02 15:17:40

+0

即时通讯不知道你的意思,对不起我的android编程知识是非常小的 – hero8110 2015-04-02 15:20:51