Java 在列表视图末尾添加按钮
因此,我有一个Listview活动,它由SQLITE数据库中的值填充Java 在列表视图末尾添加按钮,java,android,Java,Android,因此,我有一个Listview活动,它由SQLITE数据库中的值填充 package br.exemplosqlite; import android.content.Context; import android.content.Intent; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapte
package br.exemplosqlite;
import android.content.Context;
import android.content.Intent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.RelativeLayout;
import android.widget.TextView;
import java.util.List;
public class ProdutosAdapter extends BaseAdapter {
private Context context;
private List<Produtos> list;
public ProdutosAdapter(Context context, List<Produtos> list){
this.context = context;
this.list = list;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return list.size();
}
@Override
public Object getItem(int arg0) {
// TODO Auto-generated method stub
return list.get(arg0);
}
@Override
public long getItemId(int arg0) {
// TODO Auto-generated method stub
return list.get(arg0).getId();
}
@Override
public View getView(int position, View arg1, ViewGroup arg2) {
final int auxPosition = position;
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
final RelativeLayout layout = (RelativeLayout) inflater.inflate(R.layout.produtos, null);
TextView tv = (TextView) layout.findViewById(R.id.coligada);
tv.setText(list.get(position).getItem());
Button editarBt = (Button) layout.findViewById(R.id.editar);
editarBt.setOnClickListener(new Button.OnClickListener(){
@Override
public void onClick(View arg0) {
Intent intent = new Intent(context, NewUserActivity.class);
intent.putExtra("item", list.get(auxPosition).getItem());
intent.putExtra("quantidaderm",list.get(auxPosition).getQuantidaderm());
intent.putExtra("id", list.get(auxPosition).getId());
context.startActivity(intent);
}
});
// *********** BOTÃO DE EXCLUIR ***************** //
//Button deletarBt = (Button) layout.findViewById(R.id.deletar);
//deletarBt.setOnClickListener(new Button.OnClickListener(){
// @Override
// public void onClick(View arg0) {
// BD bd = new BD(context);
// bd.deletar(list.get(auxPosition));
//
// layout.setVisibility(View.GONE);
// }
//}
///);
return layout;
}
}
我怎样才能把按钮固定在顶部或底部
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal" >
<TextView
android:id="@+id/coligada"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Large Text"
android:layout_alignBottom="@+id/editar"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_weight="1"/>
<Button
android:id="@+id/editar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Quantidadesxsx"
android:onClick="editar"
android:layout_alignParentTop="true"
android:layout_toRightOf="@+id/coligada"
android:layout_toEndOf="@+id/coligada" />
</RelativeLayout>
这是我的ProductAdapter,它具有自定义布局,其中包含项目和一个apdater,该apdater使用Sqlite数据库中的值填充我的listview
package br.exemplosqlite;
import android.content.Context;
import android.content.Intent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.RelativeLayout;
import android.widget.TextView;
import java.util.List;
public class ProdutosAdapter extends BaseAdapter {
private Context context;
private List<Produtos> list;
public ProdutosAdapter(Context context, List<Produtos> list){
this.context = context;
this.list = list;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return list.size();
}
@Override
public Object getItem(int arg0) {
// TODO Auto-generated method stub
return list.get(arg0);
}
@Override
public long getItemId(int arg0) {
// TODO Auto-generated method stub
return list.get(arg0).getId();
}
@Override
public View getView(int position, View arg1, ViewGroup arg2) {
final int auxPosition = position;
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
final RelativeLayout layout = (RelativeLayout) inflater.inflate(R.layout.produtos, null);
TextView tv = (TextView) layout.findViewById(R.id.coligada);
tv.setText(list.get(position).getItem());
Button editarBt = (Button) layout.findViewById(R.id.editar);
editarBt.setOnClickListener(new Button.OnClickListener(){
@Override
public void onClick(View arg0) {
Intent intent = new Intent(context, NewUserActivity.class);
intent.putExtra("item", list.get(auxPosition).getItem());
intent.putExtra("quantidaderm",list.get(auxPosition).getQuantidaderm());
intent.putExtra("id", list.get(auxPosition).getId());
context.startActivity(intent);
}
});
// *********** BOTÃO DE EXCLUIR ***************** //
//Button deletarBt = (Button) layout.findViewById(R.id.deletar);
//deletarBt.setOnClickListener(new Button.OnClickListener(){
// @Override
// public void onClick(View arg0) {
// BD bd = new BD(context);
// bd.deletar(list.get(auxPosition));
//
// layout.setVisibility(View.GONE);
// }
//}
///);
return layout;
}
}
package br.exemplosqlite;
导入android.content.Context;
导入android.content.Intent;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.BaseAdapter;
导入android.widget.Button;
导入android.widget.RelativeLayout;
导入android.widget.TextView;
导入java.util.List;
公共类ProdutosAdapter扩展BaseAdapter{
私人语境;
私人名单;
公共ProdutosAdapter(上下文,列表){
this.context=上下文;
this.list=列表;
}
@凌驾
public int getCount(){
//TODO自动生成的方法存根
返回list.size();
}
@凌驾
公共对象getItem(int arg0){
//TODO自动生成的方法存根
返回列表。获取(arg0);
}
@凌驾
公共长getItemId(int arg0){
//TODO自动生成的方法存根
返回list.get(arg0.getId();
}
@凌驾
公共视图getView(内部位置、视图arg1、视图组arg2){
最终int auxPosition=位置;
LayoutFlater充气器=(LayoutFlater)context.getSystemService(context.LAYOUT\u充气器\u服务);
最终相对布局=(相对布局)充气器充气(R.layout.produtos,空);
TextView tv=(TextView)layout.findviewbyd(R.id.coligada);
tv.setText(list.get(position.getItem());
ButtonEditArbt=(Button)布局.findViewById(R.id.editar);
editarBt.setOnClickListener(新建按钮.OnClickListener(){
@凌驾
公共void onClick(视图arg0){
意向意向=新意向(上下文,NewUserActivity.class);
intent.putExtra(“item”,list.get(auxPosition.getItem());
intent.putExtra(“quantidaderm”,list.get(auxPosition.getQuantidaderm());
intent.putExtra(“id”,list.get(auxPosition.getId());
背景。开始触觉(意图);
}
});
//***************独家代理权******************//
//按钮deletarBt=(按钮)布局.findViewById(R.id.deletar);
//deletarBt.setOnClickListener(新建按钮.OnClickListener(){
//@覆盖
//公共void onClick(视图arg0){
//BD=新BD(上下文);
//bd.deletar(list.get(auxPosition));
//
//layout.setVisibility(View.GONE);
// }
//}
///);
返回布局;
}
}
当前布局用于listview项目
从此布局文件中删除按钮,并将其粘贴到已定义ListView的布局文件中
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" >
<ListView
.....
</ListView>
<Button>
</Button>
</RelativeLayout>
在按钮中添加这行代码
<Button
android:id="@+id/editar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Quantidadesxsx"
android:onClick="editar"
android:layout_below="@+id/coligada"/>
这样做:
<?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">
<ListView
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Your text here"/>
</LinearLayout>
试试这个:
<?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" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical" >
<ListView
android:id="@+id/listView1"
android:layout_width="match_parent"
android:layout_height="match_parent" >
</ListView>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="0.05"
android:orientation="horizontal" >
<TextView
android:id="@+id/coligada"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/editar"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_weight="1"
android:text="Large Text" />
<Button
android:id="@+id/editar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_toEndOf="@+id/coligada"
android:layout_toRightOf="@+id/coligada"
android:onClick="editar"
android:text="Quantidadesxsx" />
</LinearLayout>
</LinearLayout>
试试这个
<Button
android:id="@+id/btn"
layout_width="wrap_content"
layout_height="wrap_content"
android:alignParentTop="true"
/>
<ListView
layout_width="wrap_content"
layout_height="wrap_content"
android:layout_below="@+id/btn"
/>
您可以将android:layout\u weight=“1”
与线性布局一起使用
示例。
<?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="wrap_content"
android:orientation="horizontal" >
<TextView
android:id="@+id/txtView"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"/>
<Button
android:id="@+id/editar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Quantidadesxsx"
android:onClick="editar"/>
</LinearLayout>
在ListView
和centerHorizontal
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ListView
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
<Button
android:id="@+id/btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:text="Your Button"
/>
</RelativeLayout>
希望这能有所帮助。同时显示创建listview的位置显示完整的listview布局此处显示完整的listview布局……如果代码完整,请使用上面的布局xml。Ajay,你能用我的代码做个例子吗?你能给出png的设计应该是什么样子吗?你想在listview内部还是listview外部修复按钮?对不起,我不理解。你能举个例子吗?简单一点。您应该有2个布局xml文件。1应该有listview和button,另一个应该有textview。Sanky,如何调用两个布局?在setContentView的主要活动中必须使用listview布局。创建适配器objectLet us时设置的其他布局文件。当我更改此xml代码时,应用程序崩溃。我的listview的每一行都显示“此处的文本”。看起来您正在使用此xml作为行的布局。这个XML是片段XML,将在屏幕底部显示文本视图,锚定在那里。如果希望按钮改为位于顶部,只需交换XML中的listview和textview顺序。是否为listview项目布局设置此布局文件
,或设置MainActivity布局?MainActivity,ProductsAdapter这就是问题所在。此布局应用于每个项目,因此您不应在此适配器中使用上述布局。我共享的布局应该在MainActivity中使用,然后对于列表项,创建单独的布局文件,其中将包含要在每一行中使用的视图。您应该设置我在MainActivity
中共享的布局,然后设置您共享的布局文件R.layout.produtos
,保持文件原样。你能展示你的MainActivity代码和它的xml吗?我不能在这里发布你的设计草图。你想要什么?在您的问题中,您说过希望按钮位于listview的底部。你的主要问题是什么?请张贴布局的草图图像。这是我的布局。我想在顶部或底部固定一个按钮。如果您只想在一行中添加文本,请在TextView
中添加这一行“android:singleLine=“true”
。