package com.partynetwork.iparty.theme;
import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu;
import com.partynetwork.dataprovider.DataProvider.IJsonResultListener;
import com.partynetwork.dataprovider.json.NetworkEntity;
import com.partynetwork.dataprovider.json.struct.Theme_getThemeArrayRequest;
import com.partynetwork.iparty.R;
import com.partynetwork.iparty.app.AppContext;
import com.partynetwork.iparty.flipmenu.BaseSlidingPage;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnFocusChangeListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.TextView;
/**
* 主题页面
*
* @author DongCeMedia
*
*/
@SuppressLint("ValidFragment")
public class ThemePage extends BaseSlidingPage implements IJsonResultListener {
private LinearLayout content;
// 弹出侧边栏菜单按钮
private LinearLayout menuBtn;
// 顶部切换文本
private TextView tv_iShare;
private LinearLayout ll_iShare;
private TextView tv_iParty;
private LinearLayout ll_iParty;
// 查找按钮
private Button tv_search;
// 查找输入文本框
private EditText et_search;
/** 最后一条数据的id */
private int lastId;
/** 页码编号 */
private int pageNumber = 0;
/** 每页的数据大小 */
private int pageSize = 5;
/** 数据选择的类别 */
private int themeType = 0;
private Activity mActivity;
public ThemePage(SlidingMenu menu) {
super(menu);
// TODO Auto-generated constructor stub
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
sendRequest();
findViewById();
init(0);
setListener();
}
/**
*
*/
private void sendRequest() {
Theme_getThemeArrayRequest request = new Theme_getThemeArrayRequest();
request.setThemeType(themeType);
request.setLastId(lastId);
request.setPageNumber(pageNumber);
request.setPageSize(pageSize);
AppContext.getInstance().getmDataProvider()
.getJsonFromNetwork(request, this);
}
/**
* 实例化控件
*/
private void findViewById() {
menuBtn = (LinearLayout) mActivity.findViewById(R.id.menu_head_left);
content = (LinearLayout) mActivity.findViewById(R.id.theme_content_ll);
// 顶部的数据
tv_iShare = (TextView) mActivity.findViewById(R.id.tab_ishare);
tv_iParty = (TextView) mActivity.findViewById(R.id.tab_iparty);
ll_iShare = (LinearLayout) mActivity.findViewById(R.id.tab_ishare_ll);
ll_iParty = (LinearLayout) mActivity.findViewById(R.id.tab_iparty_ll);
tv_search = (Button) mActivity.findViewById(R.id.search_tv);
et_search = (EditText) mActivity.findViewById(R.id.search_et);
}
private String[] shareStr = new String[] { "i视频", "派对", "音乐", "夜生活", "美食",
"旅行", "娱乐八卦", "自拍", "时尚", "情趣", "萌宠", "搞笑", "吐槽" };
private String[] partyStr = new String[] { "主题趴", "轰趴", "夜店", "K歌", "聚会",
"单身", "交友", "婚礼", "生日", "旅行", "狂欢", "节日", "美食", "同人", "校园", "游戏",
"棋牌", "运动" };
/**
* 初始化数据
*/
private void init(int position) {
this.themeType = position;
ll_iShare.setVisibility(View.INVISIBLE);
ll_iParty.setVisibility(View.INVISIBLE);
switch (themeType) {
case 0:
ll_iParty.setVisibility(View.VISIBLE);
break;
case 1:
ll_iShare.setVisibility(View.VISIBLE);
break;
default:
break;
}
content.removeAllViews();
if (position == 0) {
for (int i = 0; i < partyStr.length; i++) {
View view = LayoutInflater.from(mActivity).inflate(
R.layout.theme_item, null);
LinearLayout ll = (LinearLayout) view
.findViewById(R.id.theme_item_ll);
ll.setBackgroundResource(R.drawable.party_theme_bg_01 + i);
TextView tv = (TextView) view.findViewById(R.id.theme_item_tv);
tv.setText(partyStr[i]);
content.addView(view);
}
} else if (position == 1) {
for (int i = 0; i < shareStr.length; i++) {
View view = LayoutInflater.from(mActivity).inflate(
R.layout.theme_item, null);
LinearLayout ll = (LinearLayout) view
.findViewById(R.id.theme_item_ll);
ll.setBackgroundResource(R.drawable.share_theme_bg_01 + i);
TextView tv = (TextView) view.findViewById(R.id.theme_item_tv);
tv.setText(shareStr[i]);
content.addView(view);
}
}
et_search.addTextChangedListener(new TextWatcher() {
public void onTextChanged(CharSequence s, int start, int before,
int count) {
}
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
}
public void afterTextChanged(Editable s) {
if (0 < s.toString().length()) {
tv_search.setTextColor(Color.BLACK);
tv_search
.setBackgroundResource(R.drawable.stroke_single_select);
tv_search.setClickable(true);
} else {
tv_search.setTextColor(content.getResources().getColor(
R.color.lightgray));
tv_search.setBackgroundResource(R.drawable.stroke_single);
tv_search.setClickable(false);
}
}
});
et_search.setOnFocusChangeListener(new OnFocusChangeListener() {
public void onFocusChange(View arg0, boolean hasFocus) {
if (hasFocus) {
tv_search.setVisibility(View.VISIBLE);
} else {
tv_search.setVisibility(View.GONE);
}
}
});
// 用于清除EditText的焦点
// mActivity.setOnTouchListener(new OnTouchListener() {
//
// public boolean onTouch(View arg0, MotionEvent arg1) {
// setFocusable(true);
// setFocusableInTouchMode(true);
// requestFocus();
// return false;
// }
// });
}
/**
* 设置监听
*/
private void setListener() {
// 弹出菜单
menuBtn.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
if (slidingMenu == null) {
return;
}
if (slidingMenu.isMenuShowing()) {
slidingMenu.showContent();
} else {
slidingMenu.showMenu();
}
}
});
tv_iShare.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
init(1);
}
});
tv_iParty.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
init(0);
}
});
// 查找按钮监听
tv_search.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
Intent intent = new Intent(mActivity, ThemeSearchActivity.class);
intent.putExtra("searchText", et_search.getText().toString());
intent.putExtra("searchType", themeType);
mActivity.startActivity(intent);
et_search.setText("");
}
});
}
@Override
protected int initPage() {
return R.layout.theme;
}
/**
* 刷新界面
*/
public void onResume() {
}
@Override
public void onNetworkRequest() {
}
@Override
public void onResultSuccess(NetworkEntity entity) {
if (entity.getRequest().getAction()
.equals(new Theme_getThemeArrayRequest().getAction())) {
}
}
@Override
public void onResultFail(String result) {
}
}