Java 在列表视图末尾添加按钮

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

因此,我有一个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.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”