Hi all,
I am in a situation like, i have custom list view. One button, with
listitems.
When i click the button, i need to switch the 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 i switch to 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"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="More" />
</LinearLayout>
Thanks,
- mani
--
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