[英]Button OnclickEvent in Custom Row View ListView in android
I am new to android. 我是Android新手。 i was created custome_row_view.xml file for row view. 我创建了custome_row_view.xml文件用于行视图。
using list i display two row. 使用列表,我显示两行。 now i added one button in custome_row_view. 现在我在custome_row_view中添加了一个按钮。
how to write code for that button onclick 如何为该按钮onclick编写代码
Main. 主要。 XML XML格式
<ListView
android:id="@id/android:list"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
</ListView>
</LinearLayout>
custom_row_view.xml custom_row_view.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Medium Text"
android:textAppearance="?android:attr/textAppearanceMedium" />
<Button
android:id="@+id/buton1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Medium Text"
android:textAppearance="?android:attr/textAppearanceMedium" />
</LinearLayout>
CustomeViewActivity.java CustomeViewActivity.java
package naresh.custom.view;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.Toast;
import java.util.ArrayList;
import java.util.HashMap;
import android.app.ListActivity;
public class CustomeViewActivity extends ListActivity implements OnItemClickListener{
static final ArrayList<HashMap<String,String>> list = new ArrayList<HashMap<String,String>>();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
list.removeAll(list);
ListView lista=(ListView)findViewById(android.R.id.list);
int count = lista.getChildCount();
SimpleAdapter adapter = new SimpleAdapter(
this,
list,
R.layout.custom_row_view,
new String[] {"title","description"},
new int[] {R.id.textView1,R.id.textView2}
);
if(count<5){
HashMap<String,String> temp = new HashMap<String,String>();
temp.put("title","On/Off");
temp.put("description", "Alert to be On or Off");
list.add(temp);
HashMap<String,String> temp1 = new HashMap<String,String>();
temp1.put("title","Select tone");
temp1.put("description", "Select tone for alerting");
list.add(temp1);
HashMap<String,String> temp2 = new HashMap<String,String>();
temp2.put("title","Alert Time");
temp2.put("description", "Select Time for alerting Before/After");
list.add(temp2);
HashMap<String,String> temp3 = new HashMap<String,String>();
temp3.put("title","Change Password");
temp3.put("description", "Can cahnge password any time");
list.add(temp3);
setListAdapter(null);
setListAdapter(adapter);
}
getListView().setOnItemClickListener(this);
}
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
// TODO Auto-generated method stub
Toast.makeText(this,"ITem clicked", Toast.LENGTH_LONG).show();
}
}
I think you are using CustomAdapter to populate the listview.. 我认为您正在使用CustomAdapter填充listview。
If So then in getView() include the the button action: 如果为So,则在getView()中包含button动作:
public View getView(final int position, View convertView, ViewGroup parent)
{
View row=convertView;
FetchHolder holder=null;
if (row==null)
{
LayoutInflater inflater=getLayoutInflater();
row=inflater.inflate(R.layout.grid, parent, false);
holder=new FetchHolder(row);
row.setTag(holder);
}
else
{
holder=(FetchHolder)row.getTag();
}
holder.button.setOnClickListener(new OnClickListener()
{
public void onClick(View v) {
}
});
return row;
}
}
static class FetchHolder
{
private Button time=null;
FetchHolder(View row)
{
time=(Button)row.findViewById(R.id.timebutton);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.