I got it working...!! thanks, - mani
On Sep 2, 10:53 am, mani <[email protected]> wrote: > 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.? > > ThanksMani > > 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; > > ... > > 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

