Reputation: 25
I am a New Android Developer and I want to Show Data in list view that data get from db and I am using ArrayAdapter but not showing please any one can help me...
My Main Activity Code is Here
public class SmsMerge extends Activity {
private ImageButton btn;
private ImageButton imgb;
private TemplateOperation templateDBoperation;
ArrayList<List> arr;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sms_merge);
templateDBoperation = new TemplateOperation(this);
templateDBoperation.open();
List values = templateDBoperation.getAllTemplate();
arr=new ArrayList<List>();
arr.add((ArrayList<List>)values);
ListView listview = (ListView)findViewById(android.R.id.list);
MyListAdapter adpttt=new MyListAdapter(SmsMerge.this,R.layout.row,arr);
listview.setAdapter(adpttt);
}
}
CustomAdapter Code is here
package com.example.sqliteapplication;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.MenuInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
public class MyListAdapter extends ArrayAdapter<List> {
List names;
int inflatr;
Context ctxt;
ArrayList<List> data=new ArrayList<List>();
public MyListAdapter(Context context, int layoutResourceId,
ArrayList<List> data) {
super(context, layoutResourceId, data);
this.inflatr = layoutResourceId;
this.ctxt = context;
this.data= data;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
UserHolder holder = null;
View row = convertView;
if(convertView==null)
{
LayoutInflater inflater = ((Activity) ctxt).getLayoutInflater();
row = inflater.inflate(inflatr, parent, false);
holder = new UserHolder();
holder.btnEdit = (Button) row.findViewById(R.id.atomPay_removePay);
row.setTag(holder);
}
else
{
holder = (UserHolder) row.getTag();
}
List dta=data.get(position);
holder.btnEdit.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(ctxt, "Humayoon Siddiqueeeeeeeeeeeeeeeeeee", Toast.LENGTH_SHORT).show();
}
});
return convertView;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return 0;
}
static class UserHolder {
TextView textName;
TextView textAddress;
TextView textLocation;
Button btnEdit;
Button btnDelete;
}
}
Upvotes: 0
Views: 59
Reputation: 47817
First correct this
return row;
instead of
return convertView;
in your adapter getView(....)
method and also post your all logcat and also modify @Override getCount()
as @Biraj said
Below your corrected code
@Override
public View getView(int position, View convertView, ViewGroup parent) {
UserHolder holder = null;
View row = null;
if(convertView==null)
{
LayoutInflater inflater = ((Activity) ctxt).getLayoutInflater();
row = inflater.inflate(R.layout.row, parent, false);
holder = new UserHolder();
holder.btnEdit = (Button) row.findViewById(R.id.atomPay_removePay);
row.setTag(holder);
}
else
{
holder = (UserHolder) row.getTag();
}
List dta=data.get(position);
holder.btnEdit.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(ctxt, "Humayoon Siddiqueeeeeeeeeeeeeeeeeee", Toast.LENGTH_SHORT).show();
}
});
return row;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return data.size();
}
Upvotes: 2
Reputation: 6653
@Override
public int getCount() {
return data.size();
}
@Override
public View getView(int position, View mView, ViewGroup parent) {
mCursor = getCursor();
mCursor.moveToPosition(position);
if (mView == null) {
mView = mInflater.inflate(R.layout.listitem_create_edit_def, null);
mViewHolder = new ViewHolder();
//intializes view in a view holder
tvssfg = (TextView)mView.findViewById(R.id.tv_process_name);
btnsfdg = (Button) mView.findViewById(R.id.btn_add_steps);
btntrey = (Button) mView.findViewById(R.id.btn_add_tags);
checkProcess = (CheckBox) mView.findViewById(R.id.cb_process);
mView.setTag(mViewHolder);
}
else
mViewHolder = (ViewHolder) mView.getTag();
return mView;
}
Change your getview like this. hope this will help you.
Upvotes: 0
Reputation: 28484
AS @Simple Plan says
First correct this
return row;
instead of
return convertView;
Also Modify this
@Override
public int getCount() {
// TODO Auto-generated method stub
return data.size();
}
Upvotes: 1