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.
[androidbrasil-dev] BASE ADAPTER
10:40 |
Assinar:
Postar comentários (Atom)






0 comentários:
Postar um comentário