如何通过列表视图android中的切换按钮发送数据

时间:2016-03-30 11:20:53

标签: android listview android-togglebutton

所以我在Android和Android整体上列出视图也很新。我目前面临的问题是我在每个项目上都有一个切换按钮列表视图,此切换根据从服务器读取的内容而更改为打开或关闭。

现在我的问题是,我不知道如何甚至从何处开始为每个列表视图项目点击切换按钮,然后发送按钮的新状态和设备ID(想法是它会打开或关闭灯光)

我会在下面发布我的代码。如果您需要其他任何内容,请询问。我已经坚持了大约一个星期,这让我疯了!

这是我的主要活动,它将物品的JSON阵列拉入视图

String strData = getIntent().getStringExtra("name"); //Write exact name which have passed in putExtra()

这是我设置和创建项目外观的地方,基本上是我的列表视图适配器。

package mmu.tom.linkedviewproject;

import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.ImageButton;
import android.widget.ListView;

import org.json.JSONArray;

public class MainActivity extends AppCompatActivity {
    private static final String TAG = "ShowDevice";
    private ListView GetAllDevicesListView;
    private JSONArray jsonArray;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Log.i(TAG, "  OPened this");

        ImageButton button1 = (ImageButton) findViewById(R.id.image_button_new);

        button1.setOnClickListener(new View.OnClickListener() {
            Class ourClass;

            public void onClick(View v) {
                Intent i;
                i = new Intent(MainActivity.this, DeviceDetailsActivity.class);
                startActivity(i);
            }
        });
    }

    public void setListAdapter(JSONArray jsonArray) {
        this.jsonArray = jsonArray;
        this.GetAllDevicesListView.setAdapter((new GetAllDeviceListViewAdapter(jsonArray, this)));
    }

    private class GetAllDevicesTask extends AsyncTask<ApiConnector,Long,JSONArray> {
        @Override
        protected JSONArray doInBackground(ApiConnector... params) {
            // it is executed on Background thread
            return params[0].GetAllDevicesState();
        }

        @Override
        protected void onPostExecute(JSONArray jsonArray) {
         setListAdapter(jsonArray);
        }
    }
}

1 个答案:

答案 0 :(得分:0)

据我所知,你正在寻找这个。

cell.ToggleButton.setOnCheckedChangeListener(new OnCheckedChangeListener() {

        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {

            if(isChecked)
            {
                //your action
            }
            else
            {
               //your action
            }
        }
    });