posts - 93,  comments - 2,  trackbacks - 0
            2015年7月9日
          1.必須安裝nodejs
          2.安裝cnpm用cnpm替代npm
              地址:http://npm.taobao.org/
          安裝cnpm:
          npm install -g cnpm --registry=https://registry.npm.taobao.org

          3、用yarn替代npm
          yarn的安裝:
          第一種方法:參考官方文檔https://yarn.bootcss.com/
          第二種方法:cnpm install -g yarn  或者 npm install -g yarn
          4、搭建React開發(fā)環(huán)境的第一種方法(老-現(xiàn)在推薦):
          https://reactjs.org/docs/create-a-new-react-app.html
          1、必須要安裝nodejs     注意:安裝nodejs穩(wěn)定版本      教程中的nodejs版本:v8.11.2            教程中的npm版本:v5.6.0
          2.安裝腳手架工具   (單文件組件項目生成工具)   只需要安裝一次
          npm install -g create-react-app   /  cnpm install -g create-react-app
          3.創(chuàng)建項目   (可能創(chuàng)建多次)
          找到項目要創(chuàng)建的目錄:
                          create-react-app reactdemo
          4.cd  到項目里面
                  cd  reactdemo
                          npm start             yarn start運行項目
                          npm run build         yarn build 生成項目
          5、搭建React的開發(fā)環(huán)境的第二種方法(新-未來推薦):
                  https://reactjs.org/docs/create-a-new-react-app.html
                  1、必須要安裝nodejs     注意:安裝nodejs穩(wěn)定版本      教程中的nodejs版本:v8.11.2            教程中的npm版本:v5.6.0
                  2.安裝腳手架工具并創(chuàng)建項目
                      找到項目要創(chuàng)建的目錄執(zhí)行:
          npx create-react-app reactdemo
          4.cd  到項目里面
                  cd  reactdemo
                          npm start  運行項目(調(diào)試)
                          npm run build 生成項目(發(fā)布)
          npx介紹:
          npm v5.2.0引入的一條命令(npx),引入這個命令的目的是為了提升開發(fā)者使用包內(nèi)提供的命令行工具的體驗。
          詳情:
                  npx create-react-app reactdemo這條命令會臨時安裝 create-react-app 包,命令完成后create-react-app 會刪掉,不會出現(xiàn)在 global 中。下次再執(zhí)行,還是會重新臨時安裝。
          npx 會幫你執(zhí)行依賴包里的二進制文件。
                  再比如 npx http-server 可以一句話幫你開啟一個靜態(tài)服務器
          posted @ 2020-04-16 15:25 Terry Zou 閱讀(315) | 評論 (0)編輯 收藏
          @PostConstruct
          PostConstruct注釋用于在完成依賴項注入以執(zhí)行任何初始化之后需要執(zhí)行的方法。必須在類投入使用之前調(diào)用此方法。
          所有支持依賴注入的類都必須支持此注釋。即使類沒有請求注入任何資源,也必須調(diào)用使用PostConstruct注釋的方法。
          只有一個方法可以使用此批注進行批注。
          應用PostConstruct注釋的方法必須滿足以下所有條件:除了攔截器之外,方法絕不能有任何參數(shù),在這種情況下它采用Interceptor規(guī)范定義的InvocationContext對象。
          在攔截器類上定義的方法必須具有以下簽名之一:
          void <METHOD>(InvocationContext)Object <METHOD>(InvocationContext)拋出異常注意:
          PostConstruct攔截器方法不能拋出應用程序異常,但可以聲明它拋出檢查異常,包括java.lang.Exception,
          如果相同的攔截器方法除了生命周期事件之外插入業(yè)務或超時方法。
          如果PostConstruct攔截器方法返回一個值,容器將忽略它。
          在非攔截器類上定義的方法必須具有以下簽名:void <METHOD>()應用PostConstruct的方法可以是publicprotectedpackage privateprivate。
          除應用程序客戶端外,該方法絕不能是靜態(tài)的。
          該方法可能是最終的。如果該方法拋出一個未經(jīng)檢查的異常,那么該類絕不能投入使用,除非EJB可以處理異常甚至從它們恢復的EJB

          然后就會思考問題,這個注釋是修飾初始化之后需要執(zhí)行的方法,那么它和@Autowired、構造函數(shù)的執(zhí)行順序是什么呢?(當然注釋中已經(jīng)說明了PostConstruct注釋用于在完成依賴項注入之后)
          @Service
          public class BeanA {

              @Autowired
              private BeanB beanB;

              public BeanA() {
                  System.out.println("這是Bean A 的構造方法");
              }
              @PostConstruct
              private void init() {
                  System.out.println("這是BeanA的 init 方法");
                  beanB.testB();
              }
          }
          @Service
          public class BeanB {

              @PostConstruct
              private void init() {
                  System.out.println("這是BeanB 的init 方法");
              }
              public BeanB() {
                  System.out.println("這是Bean B的 構造方法");
              }
              void testB() {
                  System.out.println("這是Bean B 的 testB 方法");
              }
          }

          啟動后輸出:
          這是Bean A 的構造方法 
          這是Bean B的 構造方法
          這是BeanB 的init 方法
          這是BeanA的 init 方法
          這是Bean B 的 testB 方法

          所以得到結論: 構造方法 > @Autowired > @PostConstruct
          posted @ 2020-04-09 15:29 Terry Zou 閱讀(315) | 評論 (0)編輯 收藏
          1、ApplicationContext
          Spring的核心,Context我們通常解釋為上下文環(huán)境。ApplicationContext則是應用的容器。 Spring把Bean(object)放在容器中,需要用就通過get方法取出來。在ApplicationContext接口的眾多實現(xiàn)類中,有3個是我們經(jīng)常用到的(見表1-1),并且使用這3個實現(xiàn)類也基本能滿足我們Java EE應用開發(fā)中的絕大部分需求。
          表1-1 ApplicationContext接口的常用實現(xiàn)類介紹
          ClassPathXmlApplicationContext
          從類路徑ClassPath中尋找指定的XML配置文件,找到并裝載完成ApplicationContext的實例化工作。例如: //裝載單個配置文件實例化ApplicationContext容器
          ApplicationContext cxt = new ClassPathXmlApplicationContext("applicationContext.xml");
          //裝載多個配置文件實例化ApplicationContext容器
          String[] configs = {"bean1.xml","bean2.xml","bean3.xml"};
          ApplicationContext cxt = new ClassPathXmlApplicationContext(configs);
          FileSystemXmlApplicationContext
          從指定的文件系統(tǒng)路徑中尋找指定的XML配置文件,找到并裝載完成ApplicationContext的實例化工作。例如://裝載單個配置文件實例化ApplicationContext容器
          ApplicationContext cxt = new FileSystemXMLApplicationContext("beans.xml");
          //裝載多個配置文件實例化ApplicationContext容器
          String[] configs = {"c:/beans1.xml","c:/beans2.xml"};
          ApplicationContext cxt = new FileSystemXmlApplicationContext(configs);
          XmlWebApplicationContext
          從Web應用中尋找指定的XML配置文件,找到并裝載完成ApplicationContext的實例化工作。這是為Web工程量身定制的,使用WebApplicationContextUtils類的getRequiredWebApplicationContext方法可在JSP與Servlet中取得IoC容器的引用
          2、ApplicationEvent
          是個抽象類,里面只有一個構造函數(shù)和一個長整型的timestamp。其源碼如下

          public abstract class ApplicationEvent extends EventObject {
           
              /** use serialVersionUID from Spring 1.2 for interoperability */
              private static final long serialVersionUID = 7099057708183571937L;
           
              /** System time when the event happened */
              private final long timestamp;
           
              /**
               * Create a new ApplicationEvent.
               * 
          @param source the object on which the event initially occurred (never {@code null})
               
          */
              public ApplicationEvent(Object source) {
                  super(source);
                  this.timestamp = System.currentTimeMillis();
              }
           
              /**
               * Return the system time in milliseconds when the event happened.
               
          */
              public final long getTimestamp() {
                  return this.timestamp;
              }
          }

          3、ApplicationListener

          是一個接口,里面只有一個onApplicationEvent方法。如果在上下文中部署一個實現(xiàn)了ApplicationListener接口的bean,那么每當在一個ApplicationEvent發(fā)布到 ApplicationContext時,調(diào)用ApplicationContext.publishEvent()方法,這個bean得到通知。類似于Oberver設計模式。
          其源碼如下:

          public interface ApplicationListener<E extends ApplicationEvent> extends EventListener {
              /**
               * Handle an application event.
               * 
          @param event the event to respond to
               
          */
              void onApplicationEvent(E event);
           
          }
          下面舉個例子
          自定義事件NotifyEvent:
          import org.springframework.context.ApplicationEvent;

          public class NotifyEvent  extends ApplicationEvent  {
              private String email;
              private String content;
              public NotifyEvent(Object source){
                  super(source);
              }

              public NotifyEvent(Object source,String email,String content){
                  super(source);
                  this.email = email;
                  this.content = content;
              }

              public String getEmail() {
                  return email;
              }

              public void setEmail(String email) {
                  this.email = email;
              }

              public String getContent() {
                  return content;
              }

              public void setContent(String content) {
                  this.content = content;
              }
          }

          定義監(jiān)聽器NotifyListener:
          import org.springframework.context.ApplicationListener;
          import org.springframework.context.annotation.Configuration;

          @Configuration
          public class NotifyListener implements ApplicationListener<NotifyEvent>{
              @Override
              public void onApplicationEvent(NotifyEvent event) {
                  System.out.println("郵件地址:" + event.getEmail());
                  System.out.println("郵件內(nèi)容:" + event.getContent());
              }
          }

          單元測試類ListenerTest:
          import org.junit.Test;
          import org.junit.runner.RunWith;
          import org.springframework.beans.factory.annotation.Autowired;
          import org.springframework.boot.test.context.SpringBootTest;
          import org.springframework.test.context.junit4.SpringRunner;
          import org.springframework.web.context.WebApplicationContext;

          @RunWith(SpringRunner.class)
          @SpringBootTest(classes = ServerLauncher.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
          public class ListenerTest {
              @Autowired
              private WebApplicationContext webApplicationContext;

              @Test
              public void testListener(){
                  NotifyEvent event = new NotifyEvent("object","abc@qq.com","This is the content");
                  webApplicationContext.publishEvent(event);
              }
          }
          posted @ 2020-04-09 14:47 Terry Zou 閱讀(1292) | 評論 (0)編輯 收藏

          之前用戶使用的是3個注解注解他們的main類。分別是@Configuration,@EnableAutoConfiguration,@ComponentScan。由于這些注解一般都是一起使用,spring boot提供了一個統(tǒng)一的注解@SpringBootApplication。

          @SpringBootApplication = (默認屬性)@Configuration + @EnableAutoConfiguration + @ComponentScan。

          @SpringBootApplication 
          public class ApplicationMain { 
              public static void main(String[] args) { 
                  SpringApplication.run(Application.class, args); 
              } 
          }

          分開解釋@Configuration,@EnableAutoConfiguration,@ComponentScan。
          1、@Configuration:提到@Configuration就要提到他的搭檔@Bean。使用這兩個注解就可以創(chuàng)建一個簡單的spring配置類,可以用來替代相應的xml配置文件。

          <beans> 
              <bean id = "car" class="com.test.Car"> 
                  <property name="wheel" ref = "wheel"></property> 
              </bean> 
              <bean id = "wheel" class="com.test.Wheel"></bean> 
          </beans> 

           相當于:

          @Configuration 
          public class Conf { 
              @Bean 
              public Car car() { 
                  Car car = new Car(); 
                  car.setWheel(wheel()); 
                  return car; 
              } 
              @Bean  
              public Wheel wheel() { 
                  return new Wheel(); 
              } 
          }

          @Configuration的注解類標識這個類可以使用Spring IoC容器作為bean定義的來源。@Bean注解告訴Spring,一個帶有@Bean的注解方法將返回一個對象,該對象應該被注冊為在Spring應用程序上下文中的bean。

          2、@EnableAutoConfiguration:能夠自動配置spring的上下文,試圖猜測和配置你想要的bean類,通常會自動根據(jù)你的類路徑和你的bean定義自動配置。

          3、@ComponentScan:會自動掃描指定包下的全部標有@Component的類,并注冊成bean,當然包括@Component下的子注解@Service,@Repository,@Controller。


          posted @ 2020-04-09 09:10 Terry Zou 閱讀(133) | 評論 (0)編輯 收藏
          package com.zhihe.xqsh.utils;

          import java.io.File;
          import java.io.FileOutputStream;
          import java.io.IOException;
          import java.io.InputStream;
          import java.io.UnsupportedEncodingException;
          import java.util.Date;
          import java.util.List;

          import org.apache.http.HttpEntity;
          import org.apache.http.HttpResponse;
          import org.apache.http.HttpStatus;
          import org.apache.http.HttpVersion;
          import org.apache.http.NameValuePair;
          import org.apache.http.client.ClientProtocolException;
          import org.apache.http.client.HttpClient;
          import org.apache.http.client.entity.UrlEncodedFormEntity;
          import org.apache.http.client.methods.HttpGet;
          import org.apache.http.client.methods.HttpPost;
          import org.apache.http.conn.ClientConnectionManager;
          import org.apache.http.conn.params.ConnManagerParams;
          import org.apache.http.conn.params.ConnRouteParams;
          import org.apache.http.conn.scheme.PlainSocketFactory;
          import org.apache.http.conn.scheme.Scheme;
          import org.apache.http.conn.scheme.SchemeRegistry;
          import org.apache.http.conn.ssl.SSLSocketFactory;
          import org.apache.http.impl.client.DefaultHttpClient;
          import org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager;
          import org.apache.http.impl.cookie.BasicClientCookie;
          import org.apache.http.params.BasicHttpParams;
          import org.apache.http.params.HttpConnectionParams;
          import org.apache.http.params.HttpParams;
          import org.apache.http.params.HttpProtocolParams;
          import org.apache.http.util.EntityUtils;

          import com.zhihe.xqsh.network.ServerErrorException;

          import android.accounts.NetworkErrorException;
          import android.annotation.SuppressLint;
          import android.util.Log;


          public class CustomerHttpClient {
          private static final String TAG = CustomerHttpClient.class.getSimpleName();

          private static DefaultHttpClient customerHttpClient;

          private CustomerHttpClient() {
          }

          public static synchronized HttpClient getHttpClient() {
          if (null == customerHttpClient) {
          HttpParams params = new BasicHttpParams();
          // 設置????基本參數(shù)
          HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);
          HttpProtocolParams.setContentCharset(params, "UTF-8");
          HttpProtocolParams.setUseExpectContinue(params, true);
          HttpProtocolParams.setUserAgent(params, "Mozilla/5.0(Linux;U;Android 2.2.1;en-us;Nexus One Build.FRG83) "
          + "AppleWebKit/553.1(KHTML,like Gecko) Version/4.0 Mobile Safari/533.1");
          // 超時設置
          /* 從連接池中取連接的超時時??*/
          ConnManagerParams.setTimeout(params, 2000);
          ConnManagerParams.setMaxTotalConnections(params, 800);
          /* 連接超時 */
          HttpConnectionParams.setConnectionTimeout(params, 5000);
          /* 請求超時 */
          HttpConnectionParams.setSoTimeout(params, 10000);

          // 設置我們的HttpClient支持HTTP和HTTPS兩種模式
          SchemeRegistry schReg = new SchemeRegistry();
          schReg.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80));
          schReg.register(new Scheme("https", SSLSocketFactory.getSocketFactory(), 443));

          // 使用線程安全的連接管理來創(chuàng)建HttpClient
          ClientConnectionManager conMgr = new ThreadSafeClientConnManager(params, schReg);
          // ????連接數(shù):ConnManagerParams.setMaxTotalConnections(params, 50);
          customerHttpClient = new DefaultHttpClient(conMgr, params);
          }
          return customerHttpClient;
          }

          /**
          * 以get方式提交數(shù)據(jù)
          * @param url 提交地址
          * @param params 參數(shù)
          * @return 響應結果
          * @throws ServerErrorException 請求失敗
          * @throws NetworkErrorException 連接失敗
          */
          public static String get(String url, String params) throws ServerErrorException, NetworkErrorException {
          int tryTimes = 0;
          NullPointerException ex;
          do {
          try {
          return tryGet(url, params);
          } catch (NullPointerException e) {
          ex = e;
          tryTimes++;
          }
          } while (tryTimes < 3);
          throw ex;
          }

          /**
          * 以get方式提交數(shù)據(jù)
          * @param url 提交地址
          * @param params 參數(shù)
          * @return 響應結果
          * @throws ServerErrorException 請求失敗
          * @throws NetworkErrorException 連接失敗
          */
          public static String tryGet(String url, String params) throws ServerErrorException, NetworkErrorException {
          try {
          HttpGet request = new HttpGet(url + params);

          /*if (LotteryApplication.isCmwap()) {
          org.apache.http.HttpHost proxy = new org.apache.http.HttpHost("10.0.0.172", 80, "http");
          HttpParams httpParams = new BasicHttpParams();
          ConnRouteParams.setDefaultProxy(httpParams, proxy);
          request.setParams(httpParams);
          }*/

          HttpClient client = getHttpClient();
          HttpResponse response = client.execute(request);
          if (response.getStatusLine().getStatusCode() != HttpStatus.SC_OK) {
          throw new ServerErrorException("????????æ???????????");
          }
          HttpEntity resEntity = response.getEntity();
          String result = (resEntity == null) ? null : EntityUtils.toString(resEntity, "UTF-8");
          return result;
          } catch (UnsupportedEncodingException e) {
          logw(e.getMessage());
          return null;
          } catch (ClientProtocolException e) {
          logw(e.getMessage());
          return null;
          } catch (IOException e) {
          throw new NetworkErrorException("??????????????????????", e);
          }
          }

          private static void logw(String string) {
          if (string != null) {
          Log.w(TAG, string);
          }
          }

          /**
          * 以post方式提交數(shù)據(jù)
          * @param url 提交地址
          * @param params 參數(shù)
          * @return 響應結果
          * @throws ServerErrorException 請求失敗
          * @throws NetworkErrorException 連接失敗
          */
          public static String post(String url, List<NameValuePair> params) throws ServerErrorException, NetworkErrorException {
          return post(url, params, null);
          }

          /**
          * 以post方式提交數(shù)據(jù)
          * @param url 提交地址
          * @param params 參數(shù)
          * @param soTimeout 響應超時時間,單位毫??
          * @return 響應結果
          * @throws ServerErrorException 請求失敗
          * @throws NetworkErrorException 連接失敗
          */
          public static String post(String url, List<NameValuePair> params, int soTimeout) throws ServerErrorException,
          NetworkErrorException {
          HttpParams httpParams;
          if (soTimeout <= 0) {
          httpParams = null;
          } else {
          httpParams = new BasicHttpParams();
          HttpConnectionParams.setSoTimeout(httpParams, soTimeout);
          }
          return post(url, params, httpParams);
          }

          /**
          * 以post方式提交數(shù)據(jù)
          * @param url 提交地址
          * @param params 參數(shù)
          * @param httpParams http參數(shù)
          * @return 響應結果
          * @throws ServerErrorException 請求失敗
          * @throws NetworkErrorException 連接失敗
          */
          public static String post(String url, List<NameValuePair> params, HttpParams httpParams) throws ServerErrorException,
          NetworkErrorException {
          int tryTimes = 0;
          NullPointerException ex;
          do {
          try {
          return tryPost(url, params, httpParams);
          } catch (NullPointerException e) {
          ex = e;
          tryTimes++;
          }
          } while (tryTimes < 3);
          throw ex;
          }

          /**
          * 以post方式提交數(shù)據(jù)
          * @param url 提交地址
          * @param params 參數(shù)
          * @param httpParams http參數(shù)
          * @return 響應結果
          * @throws ServerErrorException 請求失敗
          * @throws NetworkErrorException 連接失敗
          */
          public static String tryPost(String url, List<NameValuePair> params, HttpParams httpParams) throws ServerErrorException,
          NetworkErrorException {
          try {
          HttpPost request = new HttpPost(url);
          if (params != null && params.size() > 0) {
          request.setEntity(new UrlEncodedFormEntity(params, "UTF-8"));
          }

          // if (LotteryApplication.isCmwap()) {
          // org.apache.http.HttpHost proxy = new org.apache.http.HttpHost("10.0.0.172", 80, "http");
          // if (httpParams == null)
          // httpParams = new BasicHttpParams();
          // ConnRouteParams.setDefaultProxy(httpParams, proxy);
          // }

          if (httpParams != null)
          request.setParams(httpParams);
          //Log.v("CS", params.toString());
          HttpClient client = getHttpClient();
          HttpResponse response = client.execute(request);
          if (response.getStatusLine().getStatusCode() != HttpStatus.SC_OK) {
          //Log.v("CS", params.toString());
          //Log.v("CS", response.getStatusLine().getStatusCode() + "");
          request.abort(); 
          throw new ServerErrorException("????????æ???????????");
          }
          if (response.getStatusLine ().getStatusCode () != 200) {  
          request.abort();  //?ж?????,?????????????????????
                          return null;  
                      } 
          HttpEntity resEntity = response.getEntity();
          String result = (resEntity == null) ? null : EntityUtils.toString(resEntity, "UTF-8");
          //Log.v("CS", params.toString() + "||||" + result);
          return result;
          } catch (UnsupportedEncodingException e) {
          logw(e.getMessage());
          return null;
          } catch (ClientProtocolException e) {
          logw(e.getMessage());
          return null;
          } catch (IOException e) {
          throw new NetworkErrorException(e.getMessage(), e);
          //throw new NetworkErrorException("連接不成功,請檢查網(wǎng)絡設??, e);
          }
          }

          @SuppressLint("SdCardPath")
          public static String download(String url) throws ServerErrorException, NetworkErrorException {
          try {
          //Log.i("http-download", url);
          HttpPost request = new HttpPost(url);
          HttpClient client = getHttpClient();
          HttpResponse response = client.execute(request);
          if (response.getStatusLine().getStatusCode() != HttpStatus.SC_OK) {
          throw new ServerErrorException("????????æ???????????");
          }

          HttpEntity entity = response.getEntity();
          InputStream is = entity.getContent();
          if (is == null)
          throw new ServerErrorException("stream is null ");

          String fileExt = url.substring(url.lastIndexOf(".") + 1, url.length()).toLowerCase();
          String fileName = url.substring(url.lastIndexOf("/") + 1, url.lastIndexOf("."));

          File tempFile = new File("/sdcard/" + fileName + "." + fileExt);
          if (!tempFile.exists())
          tempFile.createNewFile();
          FileOutputStream fileOutputStream = new FileOutputStream(tempFile);

          byte[] buf = new byte[1024];
          int ch;
          while ((ch = is.read(buf)) != -1) {
          fileOutputStream.write(buf, 0, ch);
          }

          fileOutputStream.flush();
          fileOutputStream.close();
          return tempFile.getAbsolutePath();
          } catch (UnsupportedEncodingException e) {
          logw(e.getMessage());
          return null;
          } catch (ClientProtocolException e) {
          logw(e.getMessage());
          return null;
          } catch (IOException e) {
          throw new NetworkErrorException(e.getMessage(), e);
          }
          }

          /**
          * 清空cookie
          */
          public static void clearCookie() {
          if (customerHttpClient != null)
          customerHttpClient.getCookieStore().clear();
          }

          /**
          * 清除指定cookie
          * @param name cookie名稱
          */
          public static void clearCookie(String name) {
          if (customerHttpClient == null)
          return;

          BasicClientCookie expiredCookie = new BasicClientCookie(name, "null");
          expiredCookie.setExpiryDate(new Date(System.currentTimeMillis() - 1000));
          customerHttpClient.getCookieStore().addCookie(expiredCookie);
          }
          }
          posted @ 2015-07-13 22:10 Terry Zou 閱讀(285) | 評論 (0)編輯 收藏
          ffg
          http://yunpan.cn/ccdbTgQaYa4U7
          posted @ 2015-07-13 11:04 Terry Zou 閱讀(144) | 評論 (0)編輯 收藏
          abe
          private Drawable img_time_filter,img_time_filter_selected ;
          //過濾器TextView中顯示的圖片
          img_time_filter = getResources().getDrawable(R.drawable.time_filter);
          //調(diào)用setCompoundDrawables時,必須調(diào)用Drawable.setBounds()方法,否則圖片不顯示
          img_time_filter.setBounds(0, 0, img_time_filter.getMinimumWidth(), img_time_filter.getMinimumHeight());
          img_time_filter_selected = getResources().getDrawable(R.drawable.time_filter_selected);
          img_time_filter_selected.setBounds(0, 0, img_time_filter_selected.getMinimumWidth(), img_time_filter_selected.getMinimumHeight());
          tv_filterTime.setCompoundDrawables(img_time_filter_selected, null, null, null);
          tv_filterTime.setTextColor(getResources().getColor(R.color.white));
          rl_filterTime.setBackgroundColor(getResources().getColor(R.color.red));

          tv_filterTime.setCompoundDrawables(img_time_filter, null, null, null);
          rl_filterTime.setBackgroundColor(getResources().getColor(R.color.white)); 
          lv_filterTime.setVisibility(View.INVISIBLE);
          posted @ 2015-07-09 00:04 Terry Zou 閱讀(217) | 評論 (0)編輯 收藏
          <2015年7月>
          2829301234
          567891011
          12131415161718
          19202122232425
          2627282930311
          2345678

          常用鏈接

          留言簿(2)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          相冊

          收藏夾

          Java

          搜索

          •  

          最新隨筆

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 灌南县| 玉门市| 萨嘎县| 永平县| 门源| 宁都县| 栾城县| 彭泽县| 遂溪县| 岳普湖县| 文山县| 开鲁县| 松江区| 五大连池市| 循化| 阜阳市| 定远县| 甘肃省| 繁峙县| 遂川县| 六安市| 绥芬河市| 莱州市| 山阴县| 府谷县| 天等县| 濉溪县| 融水| 克拉玛依市| 德阳市| 郴州市| 板桥市| 海阳市| 墨脱县| 福建省| 清河县| 郑州市| 防城港市| 油尖旺区| 临泉县| 姜堰市|