/* * Copyright (C) 2015. Keegan小钢(http://keeganlee.me) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.cheng.stylestudy; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.BaseAdapter; import android.widget.Button; import android.widget.ListView; import android.widget.TextView; import android.widget.Toast; import java.util.ArrayList; public class SelectorActivity extends AppCompatActivity implements View.OnClickListener { private Button activateBtn; private Button selectBtn; private ListView listView; private ArrayList<String> mArrayList = new ArrayList<String>(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_selector); activateBtn = (Button) findViewById(R.id.btn_activate); activateBtn.setOnClickListener(this); selectBtn = (Button) findViewById(R.id.btn_selected); selectBtn.setOnClickListener(this); listView = (ListView) findViewById(R.id.list); getData(); listView.setAdapter(new MyAdapter()); listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { Toast.makeText(SelectorActivity.this, "Item Click on " + position, Toast.LENGTH_SHORT).show(); } }); } @Override public void onClick(View v) { if (v == activateBtn) { if (activateBtn.isActivated()) { activateBtn.setActivated(false); activateBtn.setText("未激活"); } else { activateBtn.setActivated(true); activateBtn.setText("已激活"); } } if (v == selectBtn) { if (selectBtn.isSelected()) { selectBtn.setSelected(false); selectBtn.setText("未选中"); } else { selectBtn.setSelected(true); selectBtn.setText("已选中"); } } } private ArrayList<String> getData() { mArrayList.add("测试数据0"); mArrayList.add("测试数据1"); mArrayList.add("测试数据2"); mArrayList.add("测试数据3"); mArrayList.add("测试数据4"); mArrayList.add("测试数据5"); return mArrayList; } class MyAdapter extends BaseAdapter { private LayoutInflater inflater; @Override public int getCount() { inflater = LayoutInflater.from(SelectorActivity.this); return mArrayList.size(); } @Override public Object getItem(int position) { return mArrayList.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(final int position, View convertView, ViewGroup parent) { ViewHolder holder; if (convertView == null) { convertView = inflater.inflate(R.layout.item_list, parent, false); holder = new ViewHolder(); holder.titleTxt = (TextView) convertView.findViewById(R.id.txt_title); holder.button = (Button) convertView.findViewById(R.id.btn); convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } holder.titleTxt.setText(mArrayList.get(position)); holder.button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(SelectorActivity.this, "Button " + position + " click", Toast.LENGTH_SHORT).show(); } }); return convertView; } class ViewHolder { TextView titleTxt; Button button; } } }