正在从customlistadapter调用activitygroup



我正在开发一款具有选项卡功能的android应用程序。

一切都很好,但我无法从listadapter调用activtygroup。

这是我的列表适配器代码:

import java.util.ArrayList;
import android.app.Activity;
import android.app.ActivityGroup;
import android.content.Context;
import android.content.Intent;
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;
import com.tv.socialgoal.R;
import com.tv.socialgoal.imageloader.ImageLoader;
public class AllyListAdapter extends BaseAdapter{
    Activity ctx;
    ArrayList<Object> alist;
    private ImageLoader imageLoader;
    AllyBean allyBean;
    private String photoPath;
    public AllyListAdapter(Activity ctx, ArrayList<Object> alist) {
        super();
        this.ctx = ctx;
        this.alist = alist;
        imageLoader=new ImageLoader(ctx);
    }
    @Override
    public int getCount() {
        // TODO Auto-generated method stub
        return alist.size();
    }
    @Override
    public Object getItem(int arg0) {
        // TODO Auto-generated method stub
        return null;
    }
    @Override
    public long getItemId(int arg0) {
        // TODO Auto-generated method stub
        return 0;
    }
    @Override
    public View getView(int position, View arg1, ViewGroup arg2) {
        LayoutInflater linf=(LayoutInflater) ctx.getSystemService(ctx.LAYOUT_INFLATER_SERVICE);
        View v=linf.inflate(R.layout.ally_list_row, null);
        TextView tv=(TextView)v.findViewById(R.id.allyName);
        ImageView profileImage=(ImageView)v.findViewById(R.id.ally_image);
        Button inviteBtn=(Button)v.findViewById(R.id.invite_btn);
        //SHOW DATA FROM LIST
        allyBean=(AllyBean)alist.get(position);
        tv.setText(allyBean.getName());
        photoPath=allyBean.getAvatar();
        profileImage.setTag(photoPath);
        imageLoader.displayImage(photoPath, ctx, profileImage, false);
        inviteBtn.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {
                Intent intent=new Intent(ctx,AddRemoveFriendScreen.class);
                //intent.putExtra("friendId", allyBean.getUserId());
                ctx.startActivity(intent);
            }
        });
        return v;
    }
    /*public void replaceContentView(String id, Intent newIntent) {
        View view =getLocalActivityManager().startActivity(id,
                newIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP))
                .getDecorView();
        this.setContentView(view);
    }*/
}

现在我必须调用AddRemoveFriends活动组。

这是活动组的代码:

import java.util.ArrayList;
import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import org.json.JSONException;
import org.json.JSONObject;
import android.app.ActivityGroup;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import com.tv.servercommunication.IServerResponse;
import com.tv.servercommunication.WebServiceCommunicator;
import com.tv.socialgoal.Constant;
import com.tv.socialgoal.R;
import com.tv.socialgoal.network.NetworkAvailablity;
import com.tv.task.TabViewActivity;
public class AddRemoveFriendScreen extends ActivityGroup implements OnClickListener, IServerResponse{
    Button backBtn;
    Button addRemoveFriendBtn;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.friends_profile_screen);
        backBtn=(Button)findViewById(R.id.back_button);
        addRemoveFriendBtn=(Button)findViewById(R.id.add_remove_frnd_btn);
        backBtn.setOnClickListener(this);
        addRemoveFriendBtn.setOnClickListener(this);
    }
    @Override
    public void onClick(View v) {
        switch (v.getId()) {
        case R.id.back_button:
            break;
        case R.id.add_remove_frnd_btn:
            callAddFriend_WS();
            break;
        default:
            break;
        }
    }
    private Handler _handler = new Handler() {
        public void dispatchMessage(Message msg) {
            switch (msg.arg1) {
            case Constant.PID_ADD_REMOVE_FRIEND:
                if (parseResponse(msg.obj.toString()) == true) {
                    Intent intent = new Intent(getParent(),
                            TabViewActivity.class);
                    startActivity(intent);
                } else {
                    runOnUiThread(new Runnable() {
                        public void run() {
                            Constant.showAlertDialog(
                                    Constant.DIALOG_TITLE_ERROR,
                                    "Invalid username or password.",
                                    getParent(), false);
                        }
                    });
                }
                break;
            default:
                break;
            }
        }
    };
    // GET USER ACCESSTOCKEN AND USER ID
    private boolean parseResponse(String response) {
        String message = null;
        JSONObject post;
        boolean isUserInfoAvail = false;
        try {
            JSONObject postjsonObject = new JSONObject(response);
            JSONObject posts = postjsonObject.getJSONObject("posts");
            post = posts.getJSONObject("post");
            message = post.getString("message");
            if (message.equalsIgnoreCase("failure")) {
                isUserInfoAvail = false;
            } else {
                isUserInfoAvail = true;
            }
        } catch (JSONException e1) {
            e1.printStackTrace();
        }
        return isUserInfoAvail;
    }
    public void callAddFriend_WS() {
        if (NetworkAvailablity.checkNetworkStatus(AddRemoveFriendScreen.this)) {
            // PREPARE URL
            Constant.methodURL = "http://admin.tvdevphp.com/goalmachine/add_friend.php";
            // PREPARE REQUEST PARAMETER
            ArrayList<NameValuePair> requestParaList = new ArrayList<NameValuePair>();
            requestParaList.add(new BasicNameValuePair("self_user_id", "1"));
            requestParaList.add(new BasicNameValuePair("user_friend_id", "2"));
            // CALL WEBSERVICE
            WebServiceCommunicator.getInstance().registerForServerResponse(
                    AddRemoveFriendScreen.this);
            WebServiceCommunicator.getInstance().callGetAppWebService(
                    Constant.showDialog, getParent(),
                    Constant.methodURL, getParent(), Constant.PID_ADD_REMOVE_FRIEND,
                    false, requestParaList);
        } else {
            Constant.showAlertDialog(Constant.errorTitle,
                    Constant.MSG_CHECK_INTERNET_SETTING, getParent(),
                    false);
        }
    }
    // SERVER RESPONSE METHOD
    public void serverResponse(String response, int processid) {
        Message msg = new Message();
        msg.arg1 = processid;
        msg.obj = response;
        _handler.dispatchMessage(msg);
    }
}

请建议我如何从listadapter调用activtygroup。

这样做可以访问所有内容。

 public class AddRemoveFriendScreen extends ActivityGroup implements OnClickListener, IServerResponse
   {
       @Override
         protected void onCreate(Bundle savedInstanceState) 
           {
            .......
            } 
        class AllyListAdapter extends BaseAdapter
        {
                //Now you can call everything from ActivityGroup
        } 
   } 

希望这对你有帮助。

根据android developer参考,您可以使用Fragments。

ActivityGroup已弃用。请改用新的Fragment和FragmentManager API;这些也可以通过Android兼容包在旧平台上使用。

你可以试试这个把戏。

inviteBtn.setOnClickListener(new OnClickListener() {
    public void onClick(View v) {
        if(ctx instanceof ActivityGroup){
            Intent intent = new Intent(ctx.getParent(),AddRemoveFriendScreen.class);
            //intent.putExtra("friendId", allyBean.getUserId());
            ctx.getParent().startActivity(intent);
        }
        else{
            Intent intent = new Intent(ctx,AddRemoveFriendScreen.class);
            //intent.putExtra("friendId", allyBean.getUserId());
            ctx.startActivity(intent);
        }
    }
});

如果不起作用,只需在AddRemoveFriendScreen类中使用适配器的内部类。

相关内容

  • 没有找到相关文章

最新更新