Search code examples
javaandroidadaptergetview

Android adapter's getView() not calling an activity


I am trying to call an activity from adapter class. My activity class has no constructor but onCreate(). How do I call it from getView()? I searched for solutions but it's not working.

My adapter getView():

public View getView(int position, View convertView, ViewGroup parent) {
        //SharedPostView holder;
        PostActivity holder;



        if (convertView == null) {
            Log.d("network frag list"," convertView null ");
            LayoutInflater inflater = (LayoutInflater)
                    context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
            convertView = inflater.inflate(R.layout.activity_post, null);
            holder = new PostActivity();
            convertView.setTag(holder);
        } else {
            Log.d("network frag list"," convertView.getTag() ");
            holder = (PostActivity)convertView.getTag();
        }
        holder.init(position);
        Log.d("network frag list", " getView");


        return convertView;
}

Solution

  • Try this,

    This is my getView from adapter class,

    @Override
        public View getView(final int position, View convertView, ViewGroup arg2) {
            // TODO Auto-generated method stub
            View myView = convertView;
            final ViewHolder holder;
            try {
    
                if (myView == null) {
                    LayoutInflater inflater = LayoutInflater.from(context);
                    myView = inflater.inflate(R.layout.row_affiliates_list, null);
                    holder = new ViewHolder();
    
                    holder.txtAffiliateHeader = (TextView) myView.findViewById(R.id.txtAffiliateHeader);
    
                    holder.rlMain = (RelativeLayout) myView.findViewById(R.id.rlMain);
                    holder.viewLine = (TextView) myView.findViewById(R.id.viewLine);
    
                    myView.setTag(holder);
                } else {
                    holder = (ViewHolder) myView.getTag();
                }
                holder.txtAffiliateHeader.setText(""+ AffiliatesList.get(position).getStrAffiliateTitle());
    
                holder.rlMain.setTag(position);
                holder.rlMain.setOnClickListener(new OnClickListener() {
    
                    @Override
                    public void onClick(View v) {
                        // TODO Auto-generated method stub
                        int arg2 = Integer.parseInt(v.getTag().toString());
    
                        Intent intent = new Intent(context, SecondActivity.class);
                        context.startActivity(intent);
                    }
                });
    
                return myView;
            } catch (Exception e) {
                return myView;
            }
        }
    

    This is how you can call the activity from adapter class on click of your button or full relative layout.