/*
* 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;
}
}
}