Tecnologia do Blogger.
RSS

Re: [androidbrasil-dev] BASE ADAPTER

Aparece a linha sim: AbsListView.java:1419

Cole o stack trace inteiro aqui e vai ser mais fácil te ajudar.



2013/3/27 kleverson.holanda@gmail.com <kleverson.holanda@gmail.com>
Ele não diz a linha: aparece isso no log: android.widget.AbsListView.obtainView(AbsListView.java:1419). Já teve algum problema parecido?


2013/3/27 Diogo Henrique <diogjp10@gmail.com>
O seu NullPointer e exatamente aonde ? pelo LogCat você consegue ver exatamente a linha.
Aqui tem um exemplo desse evento que você quer pegar.

Diogo Henrique
(83)87344178
Rede Sociais: 






2013/3/27 Kleverson.holanda@gmail.com <kleverson.holanda@gmail.com>
Galera, sou  novo aqui. E já começo enchendo a paciencia com dúvidas, ainda sou novo também em termos de programar para android. sou da area de web. Enfim, to com 2 problemas com um Base Adapter. O primeiro. Por alguma razão ao acessar a essa view ele esta dando 'NullPointerException', procurei e não encontro a causa. A minha outra situação é. Como fazer um 'onItemCLickListener' nessa ListView. Podem me ajudar.

Segue o código:
* Esse é o Item que vai entrar no ListView
category_item.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" >

        <LinearLayout android:id="@+id/Category_item"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:padding="3dip"
            android:layout_marginRight="5dip">


                <Button
                        android:id="@+id/Delete_category"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                android:text="Deletar"
                 />


            <TextView
                android:id="@+id/Category_title"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/description"
                android:textColor="#000000"
                android:paddingTop="13dip"
                android:paddingBottom="13dip"
                android:typeface="sans"
                android:textSize="16sp"
                android:textStyle="bold" />


     </LinearLayout>

</LinearLayout>

category.xml
* A view onde esta o ListView
<?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"
                >
                        <Button
                            android:id="@+id/menu"
                                android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="Menu"
                        android:layout_gravity="right"
                    />
                        <TextView
                                android:id="@+id/titleCategory"
                                android:layout_width="fill_parent"
                                android:layout_height="wrap_content"
                                android:text="CATEGORIES"
                                android:textAppearance="?android:attr/textAppearanceLarge"
                                android:gravity="center_horizontal"
                        />
                </LinearLayout>

                <LinearLayout
                    android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:layout_marginTop="30dp"
                        >
                   <EditText
                                android:id="@+id/CategoryName"
                                android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:hint="Create new category..."
                        />

                        <Button
                                android:id="@+id/SaveCategory"
                                android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="Salvar"
                        android:layout_gravity="right"
                        />

                </LinearLayout>
                        <ListView
                                android:id="@+id/category_list"
                                android:layout_width="fill_parent"
                                android:layout_height="wrap_content"
                        ></ListView>
</LinearLayout>


Adapter
package com.prayer.adapter;

import java.util.ArrayList;
import java.util.HashMap;

import android.app.Activity;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.TextView;

import com.prayer.activity.CategoryListActivity;
import com.prayer.activity.R;

public class CategoryAdapter extends BaseAdapter {

        private Activity activity;
        private ArrayList<HashMap<String,String>> data;
        private static LayoutInflater inflater = null;
        private Context context;

        public CategoryAdapter(Activity a, ArrayList<HashMap<String,String>> d)
        {
                activity = a;
                data = d;
                inflater = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        }

        @Override
        public int getCount() {
                // TODO Auto-generated method stub
                return data.size();
        }

        @Override
        public Object getItem(int position) {
                // TODO Auto-generated method stub
                return position;
        }

        @Override
        public long getItemId(int position) {
                // TODO Auto-generated method stub
                return position;
        }

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
                // TODO Auto-generated method stub
                View vi = convertView;

                if(convertView == null)
                {
                        vi = inflater.inflate(R.layout.category_item, null);

                        Button Delete_category;
                        TextView Category_title;

                        Delete_category = (Button) vi.findViewById(R.id.Delete_category);
                        Category_title = (TextView) vi.findViewById(R.id.Category_title);

                        HashMap<String, String> category = new HashMap<String,String>();

                        category = data.get(position);
                        String text = category.get(CategoryListActivity.Key_category).toString();
                        Category_title.setText(text);
                        return vi;

                }

                return null;
        }

}

Activity
package com.prayer.activity;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.Intent;
import android.database.Cursor;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.Toast;

import com.prayer.adapter.CategoryAdapter;
import com.prayer.database.Database;
import com.prayer.database.dataBaseManager;

public class CategoryListActivity extends Activity implements OnClickListener
{

        ArrayList<HashMap<String, String>> category = new ArrayList<HashMap<String,String>>();
        Button SaveCategory, menu, Delete_category;
        EditText CategoryName;
        ListAdapter adapter;
        ListView category_list;
        public static final String Key_category = "name";
        public Database database = new Database(new dataBaseManager(this));

        //public static final String Key_count = null;

        public void onCreate(Bundle savedInstanceState)
        {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.category);

                category_list = (ListView) findViewById(R.id.category_list);
                CategoryName = (EditText) findViewById(R.id.CategoryName);

                SaveCategory = (Button) findViewById(R.id.SaveCategory);
                SaveCategory.setOnClickListener(this);

                menu = (Button) findViewById(R.id.menu);
                menu.setOnClickListener(this);

                Delete_category = (Button) findViewById(R.id.Delete_category);


                database.open();
                Cursor categoryItem = database.getAllCategory();

                if(categoryItem.moveToFirst())
                {
                        do{
                                HashMap<String, String> map = new HashMap<String, String>();
                                map.put(Key_category, categoryItem.getString(1));
                                category.add(map);
                        }while(categoryItem.moveToNext());

                        adapter = new CategoryAdapter(this, category);
                        category_list.setAdapter(adapter);
                }

                database.close();
        }

        //implements method of OnClick
        @Override
        public void onClick(View v) {
                switch(v.getId())
                {
                        case R.id.SaveCategory:
                                save();
                        break;
                        case R.id.menu:
                                Intent intent = new Intent(this, MenuActivity.class);
                                startActivity(intent);
                        break;
                }
        }

        //method to save category in database
        public void save()
        {
                SimpleDateFormat date = new SimpleDateFormat("yyyyMMddHHmmss");
                String create_date = date.format(new Date());

                CategoryName = (EditText) findViewById(R.id.CategoryName);
                String category = CategoryName.getText().toString();

                database.open();
                        try{
                                database.insertCategory(create_date, category);
                                msg("Aviso", "Categoria cadastrada com sucesso!");
                                Intent intent = new Intent(this, CategoryListActivity.class);
                                startActivity(intent);
                        }catch(Exception e)
                        {
                                msg("Erro", "Categoria n‹o cadastrada");
                        }
                database.close();
        }

        public void msg(String title, String text)
        {
                AlertDialog.Builder mensage = new AlertDialog.Builder(this);
                mensage.setTitle(title);
                mensage.setMessage(text);
                mensage.setNegativeButton("ok", null);
                mensage.show();
        }

}



--
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.



--
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
 
 



--
Att,

Kleverson Holnda Costa
Programador de Interface

--
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

--
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

0 comentários:

Postar um comentário