如何将我的用户名及其ID的值传递给下一个活动?

时间:2014-05-08 00:48:29

标签: android listview button checkbox android-activity

我希望能够点击"用户名"这将引导我进入一个新的类 - SetMed.java。除了用户名,我希望它的ID也可以传递。我尝试过使用Intent但它不起作用。非常感谢任何帮助。

这是我的MainActivity.java

 package com.checkbox.main;

import java.util.ArrayList;
import java.util.HashMap;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ListView;
import android.widget.Toast;

public class ListView_CheckBoxActivity extends Activity {

    //Adapter  
    CheckboxAdapter listItemAdapter;

    @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);

            //Buttons and incident response  
            Button getValue=(Button)findViewById(R.id.get_value);
            getValue.setOnClickListener(listener);

            //listview 
            ListView list = (ListView) findViewById(R.id.list);        

            //Array list to store the data
            ArrayList<HashMap<String, Object>> listData=new ArrayList<HashMap<String,Object>>();
            String []name={"Diabetes","example","example","example","example"};
            String []id={"Insulin, Glucagon, Prandin","example","example","example","example"};


        for(int i=0;i<5;i++)
        {    
        HashMap<String, Object> 
        map=new HashMap<String, Object>();
        map.put("friend_image", R.drawable.icon);
        map.put("friend_username", name[i]);
        map.put("friend_id", id[i]);
        map.put("selected", false);

        //Add data 
        listData.add(map);
        }   

        //Adapter
        listItemAdapter = new CheckboxAdapter(this, listData);
        list.setAdapter(listItemAdapter);
        }

        //Incident Response 
        OnClickListener listener=new OnClickListener() 
        {
            @Override
            public void onClick(View v) {

                Intent intent = new Intent(ListView_CheckBoxActivity.this, SetMed.class);

                boolean[] array = new boolean[5];
                array[0] = CheckboxAdapter.isChecked();
                intent.putExtra("status", array);


                HashMap<Integer, Boolean> state =listItemAdapter.state;
                String options="Medicine Selected:";
                for(int j=0; j<listItemAdapter.getCount(); j++)
                {
                    System.out.println("state.get("+j+")=="+state.get(j));
                    if(state.get(j)!=null)
                    {
                        @SuppressWarnings("unchecked")
                        HashMap<String, Object> map=(HashMap<String, Object>) listItemAdapter.getItem(j);
                        String username=map.get("friend_username").toString();
                        options+="\n"+username;
                        }
                    }

                //Display selection 
                startActivity(intent)
                }
        };
}

这是我的CheckBoxAdapter类。

package com.checkbox.main;

import java.util.ArrayList;
import java.util.HashMap;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.ImageView;
import android.widget.TextView;

public class CheckboxAdapter extends BaseAdapter {

    Context context;
    ArrayList<HashMap<String, Object>> listData;    

    //Record checkbox state
    HashMap<Integer, Boolean> state = new HashMap<Integer, Boolean>();      

    // Constructor  
    public CheckboxAdapter(Context context, ArrayList<HashMap<String, Object>> listData) 
    {
        this.context = context;
        this.listData = listData;   
    }

    @Override
    public int getCount() 
    {
        return listData.size();
    }

    @Override
    public Object getItem(int position) 
    {
        return listData.get(position);
    }

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

    // Rewrite View
    @Override
    public View getView(final int position, View convertView, ViewGroup parent) 
    {

        LayoutInflater mInflater = LayoutInflater.from(context);
        convertView = mInflater.inflate(R.layout.item, null);

        ImageView image = (ImageView) convertView.findViewById(R.id.friend_image);
        image.setBackgroundResource((Integer) listData.get(position).get("friend_image"));

        TextView username = (TextView) convertView.findViewById(R.id.friend_username);
        username.setText((String) listData.get(position).get("friend_username"));

        TextView id = (TextView) convertView.findViewById(R.id.friend_id);
        id.setText((String) listData.get(position).get("friend_id"));

        CheckBox check = (CheckBox) convertView.findViewById(R.id.selected);        
        check.setOnCheckedChangeListener(new OnCheckedChangeListener() 
        {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) 
            {
                if (isChecked) 
                {
                    state.put(position, isChecked);                 
                } else 
                {
                    state.remove(position);             
                }
            }
        });

        check.setChecked((state.get(position) == null ? false : true));
        return convertView;
    }

    public static boolean isChecked() {
        // TODO Auto-generated method stub
        return false;
    }

Class SetMed

 public class SetMed extends Activity {    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            // TODO Auto-generated method stub
            super.onCreate(savedInstanceState);
            setContentView(R.layout.fragment_set_med);
            TextView diabetes = (TextView) findViewById(R.id.diabetes);
            Bundle bundle = this.getIntent().getExtras();
            if (bundle.getBoolean("Diabetes", false)) {
                diabetes.setText("Diabetes");
            } else {
                diabetes.setText("");
            }

        }
    }

0 个答案:

没有答案