Как надувать надувать две раскладки из одного класса? - PullRequest
0 голосов
/ 08 ноября 2011

У меня есть ListView, и я хочу отображать содержимое выбранного списка во всплывающем окне, когда я нажимаю на него в представлении. Как я могу это сделать?

Вот мой код:

public class EventbyDate extends ListActivity {
    Context cont;
    private Runnable DateEventListThread;
    public String DateEventListThreadResponse;
    private ProgressDialog m_ProgDialog = null;
    public DateEventListAdapter DateEventList_adapter;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.eventsbydate);
        GetDateEventList();
        this.DateEventList_adapter =  new DateEventListAdapter(this,R.layout.eventsbydate_list,
        RoamMeo_Config.DateEventList);
        setListAdapter(this.DateEventList_adapter);
    }
    @Override
    public void onPause() {
        super.onPause();
        this.finish();
    }
    void GetDateEventList() {
        m_ProgDialog = ProgressDialog.show(EventbyDate.this, " Please wait",
        "Collecting Data..", true);
        DateEventListThread = new Runnable() {
            @Override
            public void run() {
                DateEventListThread = null;
                try {
                } catch (Exception e) {
                    e.printStackTrace();
                }
                runOnUiThread(returnResponse);
            }
        };
        Thread thread = new Thread(null, DateEventListThread, "DateEventListThread");
        thread.start();
    }
    @Override
    protected void onListItemClick(ListView l, View v, int position, long id) {
        super.onListItemClick(l, v, position, id);
        LayoutInflater inflater = (LayoutInflater)  EventbyDate.
        this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        PopupWindow pw = new PopupWindow(inflater.inflate(R.layout.popup,null,    
        false),300,400,true);

        pw.showAtLocation(findViewById(R.id.txt_start_date),  

        Gravity.CENTER, 0,0);


    }

    private Runnable returnResponse = new Runnable() {
        @Override
        public void run() {             
            try {
                if (DateEventListThreadResponse != null&& 

                        DateEventListThreadResponse.length() > 0) {
                    boolean check = 
                    XMLParsing.EventDate_List_Response(DateEventListThreadResponse);
                    if(check) {


                        DateEventList_adapter.notifyDataSetChanged();                       
                    } else {
                        Toast msg =   

                        Toast.makeText(EventbyDate.this,"No list... ",Toast.LENGTH_LONG);
                        msg.setGravity(Gravity.CENTER,   

                        msg.getXOffset() / 2,msg.getYOffset() / 2);
                        msg.show();
                    }
                }
                if (m_ProgDialog != null)
                m_ProgDialog.dismiss();
                m_ProgDialog = null;
            } catch (Exception e) {
                if (m_ProgDialog != null)
                m_ProgDialog.dismiss();
                m_ProgDialog = null;
            }           
        }
    };

    class DateEventListAdapter extends ArrayAdapter<SaveDateEventList> {
        ArrayList<SaveDateEventList> items;
        public DateEventListAdapter(Context context, int  

        textViewResourceId,
        ArrayList<SaveDateEventList> items) {
            super(context, textViewResourceId, items);
            this.items = items;
        }
        @Override
        public View getView(int position, View convertView, ViewGroup 

        parent) {
            View v = convertView;
            final SaveDateEventList d = items.get(position);
            if (v == null) {
                LayoutInflater vi = (LayoutInflater)   

                getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                v = vi.inflate(R.layout.eventsbydate_list, null);
            }
            if (!items.isEmpty()) {
                if (d != null) {
                    TextView start_date = (TextView) 

                    v.findViewById(R.id.txt_start_date);
                    start_date.setText(d.ev_start_date);

                    TextView start_time = (TextView) 

                    v.findViewById(R.id.txt_start_time);
                    start_time.setText(d.ev_start_time);

                    TextView poptext = (TextView)  

                    v.findViewById(R.id.poptext);
                    poptext.setText(d.ev_start_time);
                }
            }
            return v;
        }
    }
}

1 Ответ

0 голосов
/ 08 ноября 2011

Вы можете сделать что-то вроде этого, protected void onListItemClick(ListView l, View v, int position, long id) {YourObject o = l.getItemAtPosition(position);}. После этого вы должны установить, что когда-либо вам нужно отображать на всплывающем экране через этот полученный объект.

...