package com.example.app;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.UnsupportedEncodingException;import java.net.HttpURLConnection;import java.net.MalformedURLException;import java.net.URL;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import android.support.v7.app.ActionBarActivity;import android.support.v4.app.Fragment;import android.annotation.SuppressLint;import android.os.Bundle;import android.os.StrictMode;import android.view.GestureDetector;import android.view.LayoutInflater;import android.view.Menu;import android.view.MenuItem;import android.view.MotionEvent;import android.view.View;import android.view.View.OnTouchListener;import android.view.ViewGroup;import android.webkit.WebView;import android.webkit.WebViewClient;import android.widget.ListView;import android.widget.SimpleAdapter;import android.widget.TextView;public class MainActivity extends ActionBarActivity {private TextView mNews;private TextView interview;private WebView mWebView; private ListView listView;final int RIGHT = 0;      final int LEFT = 1;      private GestureDetector gestureDetector;          @SuppressLint("NewApi")@Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);                StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder().detectDiskReads().detectDiskWrites().detectNetwork() .penaltyLog().build());        StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder().detectLeakedSqlLiteObjects().detectLeakedClosableObjects().penaltyLog().penaltyDeath().build());                /*-----------------------下载回消息*/        String baseUrl = "http://www.itbuluoge.com/app/newslist.txt";        String outfile=downloadXML(baseUrl);        /*-----------------------格式化*/        List<news> list = new ArrayList<news>();       String[] templist =outfile.split("#"); for(int i=0;i<templist.length;i++){String[] one=templist[i].split("-");news mynews=new news();mynews.id=0;mynews.title=one[0];mynews.detailed=one[1];list.add(mynews);}/*-----------------------映射到listview上*/        ArrayList<HashMap<String, Object>> listItem = new ArrayList<HashMap<String, Object>>();          for(int i=0;i<list.size();i++)          {              HashMap<String, Object> map = new HashMap<String, Object>();              map.put("title", list.get(i).title);              map.put("detailed", list.get(i).detailed);              listItem.add(map);          }        listView=(ListView)this.findViewById(R.id.listView);        SimpleAdapter listItemAdapter = new SimpleAdapter(this,listItem,//数据源                 R.layout.item,              new String[] {"title","detailed"},                 new int[] {R.id.title,R.id.detailed}            );                     listView.setAdapter(listItemAdapter);                       /*-----------------------导航栏点击事件*/        interview=(TextView)findViewById(R.id.interview);        interview.setClickable(true); //设置tv为可点击。        interview.setOnTouchListener(new OnTouchListener()        {   //添加OnClickListener@Overridepublic boolean onTouch(View v, MotionEvent event) {// TODO Auto-generated method stubmWebView.loadUrl("http://www.itbuluoge.com/app/index.php?action=interview");     return false;}                    });                gestureDetector = new GestureDetector(MainActivity.this,onGestureListener);                  if (savedInstanceState == null) {            getSupportFragmentManager().beginTransaction()                    .add(R.id.container, new PlaceholderFragment())                    .commit();        }                    }    private GestureDetector.OnGestureListener onGestureListener =               new GestureDetector.SimpleOnGestureListener() {              @Override              public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,                      float velocityY) {                  float x = e2.getX() - e1.getX();                  float y = e2.getY() - e1.getY();                        if (x > 0) {                      doResult(RIGHT);                  } else if (x < 0) {                      doResult(LEFT);                  }                  return true;              }          };                  public boolean onTouchEvent(MotionEvent event) {              return gestureDetector.onTouchEvent(event);          }                public void doResult(int action) {                if(action==0)//右边        {        this.mWebView.loadUrl("http://www.itbuluoge.com/app/index.php?action=interview");        }        else        {        this.mWebView.loadUrl("http://www.itbuluoge.com/app/index.php?action=news");        }                   }  @Override    public boolean onCreateOptionsMenu(Menu menu) {                // Inflate the menu; this adds items to the action bar if it is present.        getMenuInflater().inflate(R.menu.main, menu);        return true;    }    @Override    public boolean onOptionsItemSelected(MenuItem item) {        // Handle action bar item clicks here. The action bar will        // automatically handle clicks on the Home/Up button, so long        // as you specify a parent activity in AndroidManifest.xml.        int id = item.getItemId();        if (id == R.id.action_settings) {            return true;        }        return super.onOptionsItemSelected(item);    }        /*-----------------------返回远程字符串*/    public static String downloadXML(final String urlStr)    {    InputStream inStream = null;    URL url = null;try {url = new URL(urlStr);} catch (MalformedURLException e) {e.printStackTrace();}      HttpURLConnection conn = null;try {conn = (HttpURLConnection) url.openConnection();} catch (IOException e) {e.printStackTrace();}      conn.setConnectTimeout(5 * 1000);      try {conn.setRequestMethod("GET");conn.connect();} catch (Exception e) {}                try {    inStream= conn.getInputStream();} catch (IOException e) {e.printStackTrace();}            StringBuilder sb = null;    try {BufferedReader reader = new BufferedReader(new InputStreamReader(inStream,"utf-8"));sb= new StringBuilder();  String line = null; try {while ((line = reader.readLine()) != null) {   sb.append(line);   }} catch (IOException e) {e.printStackTrace();}   } catch (UnsupportedEncodingException e) {e.printStackTrace();}                  return sb.toString();      }        public static String convertStreamToString(InputStream is) throws UnsupportedEncodingException {      BufferedReader reader = new BufferedReader(new InputStreamReader(is,"utf-8"));           StringBuilder sb = new StringBuilder();               String line = null;           try {               while ((line = reader.readLine()) != null) {                   sb.append(line);               }           } catch (IOException e) {               e.printStackTrace();           } finally {               try {                   is.close();               } catch (IOException e) {                   e.printStackTrace();               }           }               return sb.toString();       }         public static class news{    public int id;    public String title;    public String detailed;    }    /**     * A placeholder fragment containing a simple view.     */    public static class PlaceholderFragment extends Fragment {        public PlaceholderFragment() {        }        @Override        public View onCreateView(LayoutInflater inflater, ViewGroup container,                Bundle savedInstanceState) {            View rootView = inflater.inflate(R.layout.fragment_main, container, false);            return rootView;        }    }           class webViewClient extends WebViewClient{         //重写shouldOverrideUrlLoading方法,使点击链接后不使用其他的浏览器打开。      @Override      public boolean shouldOverrideUrlLoading(WebView view, String url) {          view.loadUrl(url);          //如果不需要其他对点击链接事件的处理返回true,否则返回false          return true;      }              } }
  


更多相关文章

  1. Android使用GestureDetector实现手势滑动效果
  2. Android(安卓)编辑框 点击空白处,键盘消失
  3. Android中button实现onclicklistener事件的两种方法
  4. AppCompatCheckedTextView
  5. android ontouch onclick
  6. Android开发-DesignDemo-AndroidStudio(五)Coordinator
  7. 点击事件内部类中使用内部类
  8. Android(安卓)自定义确认提示框,选择确认
  9. Android:Activity:打开另外的Activity、参数传递

随机推荐

  1. android 屏幕监听滑动事件
  2. android:process=":remote" .
  3. Android(安卓)Wear Preview - UI
  4. android生命周期_Android活动生命周期–
  5. Android(安卓)实现开关灯效果
  6. Android(安卓)android下的电话拨号器
  7. Android之拍照
  8. Android(安卓)键盘驱动
  9. Android之 drawTextOnpath
  10. Android(安卓)-- 解决Android(安卓)Studi