2012-09-26 90 views
2

我有一个线性布局中的列表视图和一个按钮。我无法扩展ListActivity(使用Onlistitemclick),但我必须在列表视图中选择一个项目,该项目打开另一个视图,我必须从SQLite DB中填写详细信息。在项目点击列表视图

什么是实现这个以下代码假设数据库作品的最佳方法是什么?我是一名初学者。所有有关该方法和代码的建议都是受欢迎的。

由于提前,

public class Contacts extends Activity implements OnClickListener { 
    int NewContact_Request_Code = 1; 
    Button newcontact; 
    ListView listview; 
    public static final String LOG_TAG = "Contacts"; 
    int mInt = 0; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.contactview); 
     // Set the content to contactview.xml 

     // newcontact = NEW CONTACT button 
     // listview = MyList List View 
     newcontact = (Button) findViewById(R.id.baddcontact); 
     listview = (ListView) findViewById(R.id.mylist); 

     // Make a New Database 
     DBContact info = new DBContact(this); 
     // Open , get Information from database and close it 
     info.open(); 
     String[] data = info.queryAll(); 
     info.close(); 
     // listview = getListView(); 
     listview.setTextFilterEnabled(true); 
     // Display the names 
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(Contacts.this, android.R.layout.simple_list_item_1, data); 
     listview.setAdapter(adapter); 
     newcontact.setOnClickListener(this); 

    } 

    // @Override 
    // protected void onListItemClick(ListView l, View v, int position, long id) 
    // { 
    // // TODO Auto-generated method stub 
    // super.onListItemClick(l, v, position, id); 
    // Intent viewintent = new Intent(Contacts.this, ViewContact.class); 
    // String item = (String) getListAdapter().getItem(position); 
    // viewintent.putExtra("name_clicked", item); 
    // startActivity(viewintent); 
    // 
    // } 



    public void onClick(View v) { 
     // TODO Auto-generated method stub 
     Intent newintent = new Intent(Contacts.this, AddNewContact.class); 
     // start actiivity for result - to get the name of the new contact 
     startActivityForResult(newintent, 0); 
    } 

    @Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     // TODO Auto-generated method stub 
     super.onActivityResult(requestCode, resultCode, data); 
     // pass the value of the string via cursor and update the list 
    } 

} 

回答

7

您可以设置OnItemClickListenerListView像下面

listview.setOnItemClickListener(new OnItemClickListener() { 

    public void onItemClick(AdapterView adapterView, View view, int position, long id) { 

     //Do some more stuff here and launch new activity 

    } 
}); 
+0

我真的很抱歉,我一直在做几个星期之前从android.ould你请解释一下? – chitranna

+0

@ user1693503我将解释什么。你想知道如何处理那个? – Praveenkumar

+0

这将有很大的帮助,如果你could.There是复制没有意义和粘贴code.I很新的编程和我没有一个软件回地面了。 我的列表视图是一个名称列表。当其中一个被点击时,我想将该名称参数传递给另一个类。这是什么?我知道如何使用意图和意向发送数据 – chitranna

2

您可以明确地设置一个onItemClickListener就可以了,就像这样:

listview.setOnItemClickListener(listener); 

其中listener是列表视图没有必要的AdapterView.OnItemClickListener

+0

我真的很抱歉,我已经从一些做的android几周之前,请你解释一下? – chitranna

+2

'ListView'有多个'items'(每一行),你想知道什么时候点击任何一个项目,rit?所以你在ListView上设置了一个'监听器',每当一个项目被点击时它会被通知。这样一个可以使用的预定义的监听器类是'AdapterView.OnItemClickListener'。为了实现这个简单的方法,请参阅下面的SpK的答案。 –

+0

感谢您的时间,并帮助 – chitranna

0

使用OnItemClickListener()将此活动从ListActivity延伸至

listview.setOnItemClickListener(new OnItemClickListener() { 
    @Override 
    public void onItemClick(AdapterView<?> arg0, View v, int arg2, long arg3) {   

    } 
}); 
+0

我真的很抱歉,我已经从几个星期before.Could请你解释这样做Android的?? – chitranna

+0

只是使用列表视图onItemClick这个代码,然后使用意图导航到另一个类.. –

+0

感谢您的时间,并帮助 – chitranna

0
private final ListView.OnItemClickListener ListClick = new OnItemClickListener() { 
    public void onItemClick(AdapterView parent, View view, int position, long id) { 
     // your action 
    } 
}; 

,并设置这样

listview.setOnItemClickListener(ListClick); 
+0

我真的很抱歉,我已经从几个星期做安卓before.Could请你解释? ? – chitranna

+0

谢谢你的时间和帮助 – chitranna

+0

我想你已经得到了你的答案。你有很长的路要走。祝你好运。 – lomec