Ver mensagens sem resposta | Ver tópicos ativos Hoje é 27 Jan 2020, 13:43



Responder Tópico  [ 2 Mensagens ] 
 Listadapter com botão no rodapé da tela 
Autor Mensagem
Android application
Android application

Data de registro: 24 Out 2012, 14:41
Mensagens: 80
Mensagem Listadapter com botão no rodapé da tela
Galera, boa noite.

Seguindo o artigo (http://romarconsultoria.blogspot.com.br/2011/03/criando-um-listadapter-customizado-para.html) fiz um listview customizado:

<?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="wrap_content"
    android:background="#cccccc"
    android:padding="5dp" >


    <TextView
        android:id="@+id/txtProduto"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:paddingLeft="5dp"
        android:text="X-Bacon"
        android:textColor="#333333"
        android:textSize="20sp" />



    <Button
        android:id="@+id/btnExcluirPedidoProduto"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/txtProduto"
        android:text="@string/btnExcluirProduto" />


    <TextView
        android:id="@+id/txtValor"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_below="@+id/txtProduto"
        android:text="Valor: 10,00"
        android:textColor="#333333" />


</RelativeLayout>


Preenchi ele com os valores do meu SQLite e maravilha, tudo certo.
Contudo, eu gostaria de adicionar no rodapé dessa tela um único botão para o usuário finalizar o pedido selecionado.
Adicionei o botão na codificação acima, mas ele repete o botão em cada linha do listview.

Gostaria de saber como devo proceder para realizar isso.

Agradeço desde já pela ajuda!


08 Nov 2012, 23:48
Perfil
Android application
Android application

Data de registro: 24 Out 2012, 14:41
Mensagens: 80
Mensagem Re: Listadapter com botão no rodapé da tela
Galera, boa noite.

Lendo outro tutorial http://zarelli.wordpress.com/2012/01/23/android-criando-um-listview-personalizado/ cheguei a seguinte codificação:

FinalizarPedido
public class FinalizarPedido extends Activity {
    private ListView listView;
   
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.finalizar_produto);
        createListView();

        listView = (ListView) findViewById(R.layout.listview_pedidoproduto);
        createListView();
    }
   
    @SuppressWarnings("unchecked")
    public void createListView() {
        List<PedidoProduto> lista = new ArrayList<PedidoProduto>();

        if (getIntent().hasExtra("lista")) {
            lista = (ArrayList<PedidoProduto>) getIntent().getExtras().getSerializable("lista");
        }
       
        ListaPedidoProduto lPedProd = new ListaPedidoProduto(this, lista);
        listView.setAdapter(lPedProd);
    }
}
 

ListaPedidoProduto
    public View getView(int position, View converView, ViewGroup oarent) {
        PedidoProduto pedidoProduto = (PedidoProduto) getItem(position);
        View view = inflater.inflate(R.layout.listview_pedidoproduto, null);
       
        TextView txtNomeProduto = (TextView)view.findViewById(R.id.txtProduto);
        txtNomeProduto.setText(pedidoProduto.getNomeProduto());

        TextView txtValorProduto = (TextView)view.findViewById(R.id.txtValor);
        txtValorProduto.setText("Valor: " + String.valueOf(pedidoProduto.getValor()));
       
        return view;
    }


Contudo ao tentar rodar o projeto tenho o seguinte retorno do logcat:
Citação:
11-10 00:23:40.725: D/AbsListView(7382): Get MotionRecognitionManager
11-10 00:23:40.725: D/AndroidRuntime(7382): Shutting down VM
11-10 00:23:40.725: W/dalvikvm(7382): threadid=1: thread exiting with uncaught exception (group=0x40c4f1f8)
11-10 00:23:40.735: E/AndroidRuntime(7382): FATAL EXCEPTION: main
11-10 00:23:40.735: E/AndroidRuntime(7382): java.lang.RuntimeException: Unable to start activity ComponentInfo{br.com.unip.menudroid/br.com.unip.menudroid.FinalizarPedido}: java.lang.NullPointerException
11-10 00:23:40.735: E/AndroidRuntime(7382): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1970)
11-10 00:23:40.735: E/AndroidRuntime(7382): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1995)
11-10 00:23:40.735: E/AndroidRuntime(7382): at android.app.ActivityThread.access$600(ActivityThread.java:128)
11-10 00:23:40.735: E/AndroidRuntime(7382): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1161)
11-10 00:23:40.735: E/AndroidRuntime(7382): at android.os.Handler.dispatchMessage(Handler.java:99)
11-10 00:23:40.735: E/AndroidRuntime(7382): at android.os.Looper.loop(Looper.java:137)
11-10 00:23:40.735: E/AndroidRuntime(7382): at android.app.ActivityThread.main(ActivityThread.java:4517)
11-10 00:23:40.735: E/AndroidRuntime(7382): at java.lang.reflect.Method.invokeNative(Native Method)
11-10 00:23:40.735: E/AndroidRuntime(7382): at java.lang.reflect.Method.invoke(Method.java:511)
11-10 00:23:40.735: E/AndroidRuntime(7382): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:993)
11-10 00:23:40.735: E/AndroidRuntime(7382): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:760)
11-10 00:23:40.735: E/AndroidRuntime(7382): at dalvik.system.NativeStart.main(Native Method)
11-10 00:23:40.735: E/AndroidRuntime(7382): Caused by: java.lang.NullPointerException
11-10 00:23:40.735: E/AndroidRuntime(7382): at br.com.unip.menudroid.FinalizarPedido.createListView(FinalizarPedido.java:32)
11-10 00:23:40.735: E/AndroidRuntime(7382): at br.com.unip.menudroid.FinalizarPedido.onCreate(FinalizarPedido.java:17)
11-10 00:23:40.735: E/AndroidRuntime(7382): at android.app.Activity.performCreate(Activity.java:4533)
11-10 00:23:40.735: E/AndroidRuntime(7382): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1053)
11-10 00:23:40.735: E/AndroidRuntime(7382): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1934)
11-10 00:23:40.735: E/AndroidRuntime(7382): ... 11 more
11-10 00:23:40.745: D/dalvikvm(7382): GC_CONCURRENT freed 177K, 4% free 14038K/14535K, paused 2ms+2ms
11-10 00:23:40.750: E/SQLiteDatabase(7382): close() was never explicitly called on database '/data/data/br.com.unip.menudroid/databases/menuDroid'
11-10 00:23:40.750: E/SQLiteDatabase(7382): android.database.sqlite.DatabaseObjectNotClosedException: Application did not close the cursor or database object that was opened here
11-10 00:23:40.750: E/SQLiteDatabase(7382): at android.database.sqlite.SQLiteDatabase.<init>(SQLiteDatabase.java:2063)
11-10 00:23:40.750: E/SQLiteDatabase(7382): at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:1117)
11-10 00:23:40.750: E/SQLiteDatabase(7382): at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:1074)
11-10 00:23:40.750: E/SQLiteDatabase(7382): at android.database.sqlite.SQLiteDatabase.openOrCreateDatabase(SQLiteDatabase.java:1161)
11-10 00:23:40.750: E/SQLiteDatabase(7382): at android.app.ContextImpl.openOrCreateDatabase(ContextImpl.java:869)
11-10 00:23:40.750: E/SQLiteDatabase(7382): at android.content.ContextWrapper.openOrCreateDatabase(ContextWrapper.java:228)
11-10 00:23:40.750: E/SQLiteDatabase(7382): at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:157)
11-10 00:23:40.750: E/SQLiteDatabase(7382): at br.com.unip.menudroid.database.PedidoProdutoDAO.<init>(PedidoProdutoDAO.java:19)
11-10 00:23:40.750: E/SQLiteDatabase(7382): at br.com.unip.menudroid.Main$3.onClick(Main.java:51)
11-10 00:23:40.750: E/SQLiteDatabase(7382): at android.view.View.performClick(View.java:3644)
11-10 00:23:40.750: E/SQLiteDatabase(7382): at android.view.View$PerformClick.run(View.java:14313)
11-10 00:23:40.750: E/SQLiteDatabase(7382): at android.os.Handler.handleCallback(Handler.java:605)
11-10 00:23:40.750: E/SQLiteDatabase(7382): at android.os.Handler.dispatchMessage(Handler.java:92)
11-10 00:23:40.750: E/SQLiteDatabase(7382): at android.os.Looper.loop(Looper.java:137)
11-10 00:23:40.750: E/SQLiteDatabase(7382): at android.app.ActivityThread.main(ActivityThread.java:4517)
11-10 00:23:40.750: E/SQLiteDatabase(7382): at java.lang.reflect.Method.invokeNative(Native Method)
11-10 00:23:40.750: E/SQLiteDatabase(7382): at java.lang.reflect.Method.invoke(Method.java:511)
11-10 00:23:40.750: E/SQLiteDatabase(7382): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:993)
11-10 00:23:40.750: E/SQLiteDatabase(7382): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:760)
11-10 00:23:40.750: E/SQLiteDatabase(7382): at dalvik.system.NativeStart.main(Native Method)
11-10 00:23:40.750: E/System(7382): Uncaught exception thrown by finalizer
11-10 00:23:40.750: E/System(7382): java.lang.IllegalStateException: Don't have database lock!
11-10 00:23:40.750: E/System(7382): at android.database.sqlite.SQLiteDatabase.verifyLockOwner(SQLiteDatabase.java:2221)
11-10 00:23:40.750: E/System(7382): at android.database.sqlite.SQLiteDatabase$1.entryRemoved(SQLiteDatabase.java:2313)
11-10 00:23:40.750: E/System(7382): at android.database.sqlite.SQLiteDatabase$1.entryRemoved(SQLiteDatabase.java:2309)
11-10 00:23:40.750: E/System(7382): at android.util.LruCache.trimToSize(LruCache.java:197)
11-10 00:23:40.750: E/System(7382): at android.util.LruCache.evictAll(LruCache.java:285)
11-10 00:23:40.750: E/System(7382): at android.database.sqlite.SQLiteDatabase.deallocCachedSqlStatements(SQLiteDatabase.java:2274)
11-10 00:23:40.750: E/System(7382): at android.database.sqlite.SQLiteDatabase.closeClosable(SQLiteDatabase.java:1246)
11-10 00:23:40.750: E/System(7382): at android.database.sqlite.SQLiteDatabase.finalize(SQLiteDatabase.java:2034)
11-10 00:23:40.750: E/System(7382): at java.lang.Daemons$FinalizerDaemon.doFinalize(Daemons.java:185)
11-10 00:23:40.750: E/System(7382): at java.lang.Daemons$FinalizerDaemon.run(Daemons.java:168)
11-10 00:23:40.750: E/System(7382): at java.lang.Thread.run(Thread.java:856)


Realizando o debug aqui vi que o problema está na seguinte linha:
listView.setAdapter(lPedProd);

Contudo não consigo entender porque o erro está ocorrendo.
Será que alguém poderia me auxiliar em como encontrar o problema??

Agradeço desde já!


10 Nov 2012, 01:25
Perfil
Mostrar mensagens anteriores:  Organizar por  
Responder Tópico   [ 2 Mensagens ] 

Quem está online

Usuários vendo este fórum: adautox, aechiara, agtavares, alansousa, alexandrefett, alexandrepom, alexandreufcg, amarildolacerdas, andre.hebeler, Androidthebest, axellsan, azero, baudamix, betofigu, BMaia, C-3PO, cabelo, Caique, Carlos Almeida, cehills, cesao, Chanceler Supremo Finis Valorum, ciro, Cleiton, Clone Trooper, Comandante Cody, Crazy_Droid, cyzko, czambroni, dallari, Delão, felipedsilva, fernandofsf, ffabiano, flaviohssantos, free_w3000, Gabriel, gapler, garretereis, gedoor, Geovanne Duarte, Google Desktop, gustavobarbosa, hebert, hellbest, jacksonvpj, jairodealmeida, jefficojava, jijo, jrsilva, juliana_costa, juliano, JuniorE, jzaires, Ki-Adi-Mundi, klausenner, leanderdulac, lillian.brandao, linukiss, loferreira, lucasB, lucianoedipo, luizcyber, maiconjunches, Marcelo, Marcelo Alves, Mayara Trevisol, mendes_lu, miguel, mmfsndroid, MpassosT, mravel, Mvitor, neimarguerra, neosun, neuhaus, Nidio Dolfini, nivea, o-raposa, otium, otpor, paulo.esantos, pbcjunior, pchofard, phobos, Portal Android, ramonsa, ramonsiebra, rayberg, regisjj, rerp7, ricdigital, Robson Florentino, rodrigo_corinthians, Rogério, rotilho, shadow, SirBagda, suissa, thienne, Thitto, tonylock, VILESOFT, Vinicius, weber, Wookiees, Yoshihury e 2 visitantes


Você não pode criar novos tópicos neste fórum
Você não pode responder tópicos neste fórum
Você não pode editar suas mensagens neste fórum
Você não pode excluir suas mensagens neste fórum
Você não pode enviar anexos neste fórum

Procurar por:

© 2007 - 2016 Portal Android - Comunidade de Desenvolvedores Android

Estamos no Linkedin    Siga-nos no twitter


Powered by phpBB - Hospedado por Bemobi