0

我正在尝试从服务器获取值并从服务器检索响应,从服务器响应的详细信息需要显示在列表视图中,我也实现了这一点,但是虽然 onitemclick 进程仅列表视图中的第一行执行单击操作,但它是没有为剩余的行执行,我该如何实现它,dat 是我选择的任何行和项目,它必须由我的代码处理,这是我的代码供参考,......

    public void userInterface() throws JSONException 
    {
        if(json_user.get(0) != null)
        {
            downloadList1 = (ListView)findViewById(R.id.lvinbox);
            populateData();
            downloadList1.setOnItemClickListener(new OnItemClickListener() 
            {
                public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) 
                {
                    // TODO Auto-generated method stub
                    fma=(TextView)findViewById(R.id.src);
                    st=(TextView)findViewById(R.id.sub);
                    fma.setOnClickListener(new OnClickListener() 
                    {
                        public void onClick(View v) 
                        {
                            // TODO Auto-generated method stub
                                                            String fm=fma.getText().toString();
                            String s=st.getText().toString();
                            Intent m = new Intent(getApplicationContext(), InActivity.class);
                            m.putExtra("f", fm);
                            m.putExtra("s", s);
                            startActivity(m);
                        }
                    });
                st.setOnClickListener(new OnClickListener() 
                    {
                        public void onClick(View v) 
                        {
                            // TODO Auto-generated method stub
                            String fm=fma.getText().toString();
                            String s=st.getText().toString();
                            Intent m = new Intent(getApplicationContext(), InActivity.class);
                            m.putExtra("f", fm);
                            m.putExtra("s", s);
                            startActivity(m);
                        }
                    });
                }
            });
        }
        else
        {
            Toast.makeText(getApplicationContext(),"Empty",  Toast.LENGTH_LONG).show();
            finish();
            Intent menu = new Intent(getApplicationContext(), MenActivity.class);
            menu.putExtra("username", dest);
            startActivity(menu);
        }
    }
    public void populateData() throws JSONException 
    {
        resultVector = new Vector<ListDataItemInbox>();


        int len = json_user.length();
        System.out.println("length--------------------->"+len);
        for(int i=0;i<len;i++)
        {
            JSONObject obj=json_user.getJSONObject(i);

            listData = new ListDataItemInbox();
            listData.sets(obj.getString(KEY_S));
            listData.setd(obj.getString(KEY_D));
            resultVector.add(listData);

            myHandler.post(myRunnable);

        }
    }
    private Handler myHandler = new Handler();
    private Runnable myRunnable = new Runnable() 
    {
        public void run() 
        {
            customListAdapter = new ListViewAdapterInbox(InActivity.this);
            customListAdapter.setResultsData(resultVector);
            downloadList1.setAdapter(customListAdapter);
        }
    };
4

1 回答 1

0

你可以做这样的事情。在列表适配器类中创建 ArrayList

ArrayList<Integer> selectedIds = new ArrayList<Integer>();

并在同一个类中创建此方法。

public void toggleSelected(Integer position){
            selectedIds.clear();
            selectedIds.add(position);
        }

现在,每当您单击列表视图的任何项目时,都会将该项目位置传递给此方法。在您的 getView 方法中,在设置文本之前设置检查。像这样的东西..

if (selectedIds.contains(position)){
                  ----- your code ----
              }else{
                 ----- your code ----
              }

它只在选定的位置执行操作。试试看。!

于 2012-12-18T11:46:00.040 回答