Thanks Mark.!!

I tried implementing the activity.this.startActivityForResult()

[ //results.this.startActivityForResult(myIntent, 0); ]

I get error like
"No enclosing instance of the type results is accessible in scope"

When i read about this error i found it is "When we try to instantiate
the inner class without instantiating the base class"

But i couldnt map it to my code what is the mistake i am doing. Sorry.
Could you please help me sort out this.?

Thanks
Mani

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URI;
import java.net.URISyntaxException;
import java.net.URL;
import java.net.URLEncoder;

import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.json.JSONArray;
import org.json.JSONObject;

import android.app.ListActivity;
import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;

public class results extends ListActivity  {

        static String result="";
        private static String DATA[];
        private static String ADDR[];

    private static class EfficientAdapter extends BaseAdapter {
        private LayoutInflater mInflater;
        private Bitmap mIcon1;
        private Bitmap mIcon2;

        public EfficientAdapter(Context context) {
            // Cache the LayoutInflate to avoid asking for a new one
each time.
            mInflater = LayoutInflater.from(context);

            // Icons bound to the rows.
            mIcon1 =
BitmapFactory.decodeResource(context.getResources(),
R.drawable.next_arrow);
            mIcon2 =
BitmapFactory.decodeResource(context.getResources(),
R.drawable.next_arrow);
        }

        public int getCount() {
            return DATA.length+1;
        }
        public Object getItem(int position) {
            return position;
        }

        public long getItemId(int position) {
            return position;
        }

        public View getView(int position, View convertView, ViewGroup
parent) {
            ViewHolder holder;
            if(position == 0)
            {
                   convertView = mInflater.inflate(R.layout.main1, null);
                   Button button =
(Button)convertView.findViewById(R.id.button);
                   button.setOnClickListener(mButtonListener);
            }
            else
            {
            if (convertView == null) {
                convertView = mInflater.inflate(R.layout.main2, null);
                holder = new ViewHolder();
                holder.title = (TextView)
convertView.findViewById(R.id.title);
                holder.address = (TextView)
convertView.findViewById(R.id.address);
                holder.icon = (ImageView)
convertView.findViewById(R.id.icon);
                convertView.setTag(holder);
            } else {
                holder = (ViewHolder) convertView.getTag();
            }
            holder.title.setText(DATA[position-1]);
            holder.address.setText(ADDR[position-1]);
            holder.icon.setImageBitmap((position & 1) == 1 ? mIcon1 :
mIcon2);
            }
            return convertView;
        }
        static class ViewHolder {
            TextView title;
            TextView address;
            ImageView icon;
        }
    } // End of efficientadapter class

    private static OnClickListener mButtonListener = new
OnClickListener() {
        public void onClick(View v) {
          Intent myIntent = new Intent(v.getContext(),
firstandroid.class);
          //results.this.startActivityForResult(myIntent, 0);
  //        finish();

          sendSearchRequest(8);

         }

    };
   public static String sendSearchRequest(int count)
   {

          //
        HttpClient client = new DefaultHttpClient();
        String query = "http://ajax.googleapis.com/ajax/services/search/local?
hl=en&v=1.0&q=paris hotel&start=";
        query+=count;
        try {
                URL url = new URL(query);
                URI uri = new URI(url.getProtocol(), url.getHost(), 
url.getPath(),
url.getQuery(), null);
                HttpGet request = new HttpGet(uri);
                HttpResponse response = client.execute(request);
                result+=Userrequest(response);
        }catch (URISyntaxException e){

        }
        catch(Exception ex){
          //txtResult.setText("Failed!");
      }
        return result;
   }
    public static String Userrequest(HttpResponse response){
            try{
                InputStream in = response.getEntity().getContent();
                BufferedReader reader = new BufferedReader(new
InputStreamReader(in));
                StringBuilder str = new StringBuilder();
                String line = null;
                while((line = reader.readLine()) != null){
                    str.append(line + "\n");
                }
                in.close();
                result = str.toString();

            }catch(Exception ex){
                result = "Error";
            }
            return result;
        }
    public static void updateData(String result)
    {
         try
        {
         JSONObject json=new JSONObject(result);
         JSONArray ja;
         json = json.getJSONObject("responseData");
         ja = json.getJSONArray("results");

         int resultCount = ja.length();
         DATA = new String[resultCount];
         ADDR = new String[resultCount];
         for (int i = 0; i < resultCount; i++)
           {
           JSONObject resultObject = ja.getJSONObject(i);
           DATA[i]=resultObject.get("titleNoFormatting").toString();
           JSONArray addr;
           addr = resultObject.getJSONArray("addressLines");
           int count = addr.length();
           ADDR[i]="";
           for(int j=0;j<count;j++)
           {
               ADDR[i]+=addr.getString(j);
               if(j==0)
                  ADDR[i]+=',';
           }
           }
         }
         catch(Exception e)
         {


         }
    }
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        sendSearchRequest(0);
        updateData(result);
        setListAdapter(new EfficientAdapter(this));
    }

}


On Sep 2, 2:07 am, Mark Murphy <[email protected]> wrote:
> Call startActivityForResult() on the Activity, then. Depending on how
> you have set up your code, that might simply be a matter of:
>
> MyActivity.this.startActivityForResult()
>
> or possibly you will need to arrange to pass the Activity instance to
> your OnClickListener.
>
>
>
> On Wed, Sep 1, 2010 at 8:12 AM,mani<[email protected]> wrote:
>
> > Hi all,
>
> > I am in a situation like, i have custom list view. One button, with
> > listitems.
>
> > When i click the button, i need toswitchthe activity. But the
> > calls,
> > startActivityForResult(myIntent, 0);  --> is a non static call. I
> > couldnt initiate this function in onClickLIstener() for the button.
>
> > Dont know how to proceed with this situation ?
>
> > Can anyone help me out with this.?
>
> > Thanks in advance...!!
>
> > Thanks,
> >Mani
>
> > java file
> > -------------
>
> > package com.example.firstandroid;
>
> > import java.io.BufferedReader;
> > import java.io.InputStream;
> > import java.io.InputStreamReader;
> > import java.net.URI;
> > import java.net.URISyntaxException;
> > import java.net.URL;
> > import java.net.URLEncoder;
>
> > import org.apache.http.HttpResponse;
> > import org.apache.http.client.HttpClient;
> > import org.apache.http.client.methods.HttpGet;
> > import org.apache.http.impl.client.DefaultHttpClient;
> > import org.json.JSONArray;
> > import org.json.JSONObject;
>
> > import android.app.ListActivity;
> > import android.content.Context;
> > import android.content.Intent;
> > import android.graphics.Bitmap;
> > import android.graphics.BitmapFactory;
> > import android.os.Bundle;
> > import android.view.LayoutInflater;
> > import android.view.View;
> > import android.view.View.OnClickListener;
> > import android.view.ViewGroup;
> > import android.widget.BaseAdapter;
> > import android.widget.Button;
> > import android.widget.ImageView;
> > import android.widget.TextView;
>
> > public class results extends ListActivity  {
>
> >        static String result="";
> >        private static String DATA[];
> >        private static String ADDR[];
>
> >        /**
> >         * Demonstrates how to write an efficient list adapter. The adapter
> > used in this example binds
> >         * to an ImageView and to a TextView for each row in the list.
> >         *
> >         * To work efficiently the adapter implemented here uses two
> > techniques:
> >         * - It reuses the convertView passed to getView() to avoid inflating
> > View when it is not necessary
> >         * - It uses the ViewHolder pattern to avoid calling findViewById()
> > when it is not necessary
> >         *
> >         * The ViewHolder pattern consists in storing a data structure in the
> > tag of the view returned by
> >         * getView(). This data structures contains references to the views
> > we want to bind data to, thus
> >         * avoiding calls to findViewById() every time getView() is invoked.
> >         */
>
> >    private static class EfficientAdapter extends BaseAdapter {
> >        private LayoutInflater mInflater;
> >        private Bitmap mIcon1;
> >        private Bitmap mIcon2;
>
> >        public EfficientAdapter(Context context) {
> >            // Cache the LayoutInflate to avoid asking for a new one
> > each time.
> >            mInflater = LayoutInflater.from(context);
>
> >            // Icons bound to the rows.
> >            mIcon1 =
> > BitmapFactory.decodeResource(context.getResources(),
> > R.drawable.next_arrow);
> >            mIcon2 =
> > BitmapFactory.decodeResource(context.getResources(),
> > R.drawable.next_arrow);
> >        }
>
> >        public int getCount() {
> >            return DATA.length+1;
> >        }
> >        public Object getItem(int position) {
> >            return position;
> >        }
>
> >        public long getItemId(int position) {
> >            return position;
> >        }
>
> >        public View getView(int position, View convertView, ViewGroup
> > parent) {
> >            ViewHolder holder;
> >            if(position == 0)
> >            {
> >                   convertView = mInflater.inflate(R.layout.main1, null);
> >                   Button button =
> > (Button)convertView.findViewById(R.id.button);
> >                   button.setOnClickListener(mButtonListener);
> >            }
> >            else
> >            {
> >            if (convertView == null) {
> >                convertView = mInflater.inflate(R.layout.main2, null);
> >                holder = new ViewHolder();
> >                holder.title = (TextView)
> > convertView.findViewById(R.id.title);
> >                holder.address = (TextView)
> > convertView.findViewById(R.id.address);
> >                holder.icon = (ImageView)
> > convertView.findViewById(R.id.icon);
> >                convertView.setTag(holder);
> >            } else {
> >                holder = (ViewHolder) convertView.getTag();
> >            }
> >            holder.title.setText(DATA[position-1]);
> >            holder.address.setText(ADDR[position-1]);
> >            holder.icon.setImageBitmap((position & 1) == 1 ? mIcon1 :
> > mIcon2);
> >            }
> >            return convertView;
> >        }
> >        static class ViewHolder {
> >            TextView title;
> >            TextView address;
> >            ImageView icon;
> >        }
> >    }
>
> >    private static OnClickListener mButtonListener = new
> > OnClickListener() {
> >        public void onClick(View v) {
> >          Intent myIntent = new Intent(v.getContext(),
> > firstandroid.class);
> > // How do iswitchto other activity from here ????
> > //          startActivityForResult(myIntent, 0);
> >  //        finish();
> >          sendSearchRequest(8);
>
> >         }
> >    };
> >   public static String sendSearchRequest(int count)
> >   {
> >        HttpClient client = new DefaultHttpClient();
> >        String query = 
> > "http://ajax.googleapis.com/ajax/services/search/local?
> > hl=en&v=1.0&q=paris hotel&start=";
> >        query+=count;
> >        try {
> >                URL url = new URL(query);
> >                URI uri = new URI(url.getProtocol(), url.getHost(), 
> > url.getPath(),
> > url.getQuery(), null);
> >                HttpGet request = new HttpGet(uri);
> >                HttpResponse response = client.execute(request);
> >                result+=Userrequest(response);
> >        }catch (URISyntaxException e){
>
> >        }
> >        catch(Exception ex){
> >          //txtResult.setText("Failed!");
> >      }
> >        return result;
> >   }
> >    public static String Userrequest(HttpResponse response){
> >            try{
> >                InputStream in = response.getEntity().getContent();
> >                BufferedReader reader = new BufferedReader(new
> > InputStreamReader(in));
> >                StringBuilder str = new StringBuilder();
> >                String line = null;
> >                while((line = reader.readLine()) != null){
> >                    str.append(line + "\n");
> >                }
> >                in.close();
> >                result = str.toString();
>
> >            }catch(Exception ex){
> >                result = "Error";
> >            }
> >            return result;
> >        }
> >    public static void updateData(String result)
> >    {
> >         try
> >        {
> >         JSONObject json=new JSONObject(result);
> >         JSONArray ja;
> >         json = json.getJSONObject("responseData");
> >         ja = json.getJSONArray("results");
>
> >         int resultCount = ja.length();
> >         DATA = new String[resultCount];
> >         ADDR = new String[resultCount];
> >         for (int i = 0; i < resultCount; i++)
> >           {
> >           JSONObject resultObject = ja.getJSONObject(i);
> >           DATA[i]=resultObject.get("titleNoFormatting").toString();
> >           JSONArray addr;
> >           addr = resultObject.getJSONArray("addressLines");
> >           int count = addr.length();
> >           ADDR[i]="";
> >           for(int j=0;j<count;j++)
> >           {
> >               ADDR[i]+=addr.getString(j);
> >               if(j==0)
> >                  ADDR[i]+=',';
> >           }
> >           }
> >         }
> >         catch(Exception e)
> >         {
>
> >         }
> >    }
> >   �...@override
> >    public void onCreate(Bundle savedInstanceState) {
> >        super.onCreate(savedInstanceState);
> >        sendSearchRequest(0);
> >        updateData(result);
> >        setListAdapter(new EfficientAdapter(this));
> >    }
>
> > }
>
> > main2.xml
> > ----------------
>
> > <?xml version="1.0" encoding="utf-8" ?>
>
> > <LinearLayout xmlns:android="http://schemas.android.com/apk/res/
> > android" android:orientation="horizontal"
> > android:layout_width="match_parent"
> > android:layout_height="match_parent">
>
> > <TextView android:id="@+id/title"
> > android:layout_gravity="center_vertical"
> > android:layout_width="0dip"
> > android:layout_weight="1.0"
> > android:layout_height="wrap_content" />
> > <TextView android:id="@+id/address"
> > android:layout_gravity="center_vertical"
> > android:layout_width="0dip"
> > android:layout_weight="1.0"
> > android:layout_height="wrap_content" />
>
> > <ImageView android:id="@+id/icon"
> > android:layout_gravity="center_vertical"
> > android:layout_width="30dip"
> > android:layout_height="30dip" />
>
> > </LinearLayout>
>
> > main1.xml
> > ---------------------
>
> > <?xml version="1.0" encoding="utf-8"?>
> > <LinearLayout xmlns:android="http://schemas.android.com/apk/res/
> > android"
> >              android:layout_width="fill_parent"
> >              android:layout_height="fill_parent"
> >              android:orientation="vertical" >
> > <Button android:id="@+id/button"
>
> ...
>
> read more »

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to