关于android中listview点击item没有反应

public class MapActivity extends BasePagerActivity {
private MapView mMapView = null;
private BaiduMap mBaiduMap;
private ListView map_menu_lv;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
initData();
}

@Override
public void initData() {
    base_tv_title.setText("街景秀");
    SDKInitializer.initialize(getApplicationContext());
    View view = View.inflate(MapActivity.this, R.layout.map, null);
    map_menu_lv = (ListView) view.findViewById(R.id.map_menu_lv);
    map_menu_lv.setAdapter(new MapMenuListViewAdapter(MapActivity.this));
    weibo_menu.setVisibility(View.VISIBLE);
    weibo_menu.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub
            //Toast.makeText(MapActivity.this, "wo", 1).show();
            map_menu_lv.setVisibility(View.VISIBLE);
        }
    });

    mMapView = (MapView) view.findViewById(R.id.bmapView);
    mBaiduMap = mMapView.getMap();
    MapStatusUpdate msu = MapStatusUpdateFactory.zoomTo(15.0f);
    mBaiduMap.setMapStatus(msu);
    **map_menu_lv.setOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                long arg3) {
            // TODO Auto-generated method stub
            switch (arg2) {
            case 0:
                mBaiduMap.setMapType(BaiduMap.MAP_TYPE_NORMAL);
                break;
            case 1:
                mBaiduMap.setMapType(BaiduMap.MAP_TYPE_SATELLITE);
                break;
            case 2:
                if(mBaiduMap.isTrafficEnabled()){
                    mBaiduMap.setTrafficEnabled(false);
                }else{
                    mBaiduMap.setTrafficEnabled(true);
                }
                break;

            default:
                break;**
            }
        }
    });
    base_fr.addView(view);
}

@Override
protected void onDestroy() {
    super.onDestroy();
    // 在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理
    mMapView.onDestroy();
}

@Override
protected void onResume() {
    super.onResume();
    // 在activity执行onResume时执行mMapView. onResume (),实现地图生命周期管理
    mMapView.onResume();
}

@Override
protected void onPause() {
    super.onPause();
    // 在activity执行onPause时执行mMapView. onPause (),实现地图生命周期管理
    mMapView.onPause();
}

}

请问标识出的部分为什么不能起到切换百度地图状态的功能?

2个回答

我看你的类都没有实现点击事件的接口,你是怎么写的setOnClickListener

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
ListView的Item中的webView控件与Item点击事件冲突?
各位大神大侠们好! 我编写了一个自定义item的ListView,自定义的ListView Item里有两个控件,一个是checkBox, 另一个是webView。 一开始ListView的点击事件完全没反应,在网上搜索了答案解决了,checkBox与ListView 点击冲突,点击checkBox区域可以响应ListView的点击事件。但是点击webView 区域不能响应ListView的点击事件。 以下是我Item布局的代码 ```<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="match_parent" android:background="@color/white" android:descendantFocusability="blocksDescendants" > <CheckBox android:layout_width="wrap_content" android:layout_height="fill_parent" android:id="@+id/HookItemCheckbox" android:background="@color/white" android:focusable="true" android:clickable="false" android:enabled="false"/> <WebView android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/HookItemwebView" android:focusable="false" /> </LinearLayout> ``` Thankssss!
Android的ListView如何实现长点击后出现隐藏的按钮按钮
我现在有个小程序,功能实现为打电话。现在已经获取了联系人列表,联系人列表放在ListView中,使用了BaseAdapter。我现在想实现这样的一个功能,长按ListView里一个联系人Item,然后此Item右边出现拨打电话的按钮,如果按钮出现几秒后用户还不点击,按钮则隐藏。目前我BaseAdapter里getView方法是这样写的 ``` @Override public View getView(int position, View convertView, ViewGroup parent) { LinearLayout ll=null; if (convertView!=null) { ll=(LinearLayout)convertView; }else{ ll=(LinearLayout) LayoutInflater.from(context).inflate(R.layout.call_name_num, null); } TextView userName=(TextView) ll.findViewById(R.id.textName); TextView userNumber=(TextView) ll.findViewById(R.id.textNumber); Button callBtn =(Button)ll.findViewById(R.id.btnCall); callBtn.setVisibility(1); callBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { System.out.println(">>>>>CallBtn Click"); } }); userName.setText(phoneUserList.get(position).getName()); userNumber.setText(phoneUserList.get(position).getNumber()); return ll; } ``` 现在就没思路了,而且我这样写有个问题,添加一个可点击的按钮后,ListView里的联系人就无法点击了,长摁联系人Item也没有反应,这是怎么回事?求大神
ListView点击事件错乱
我Listview 的每个Item很长,每个item中有若干个标签,标签可以点击折叠和关闭 比如现在有两个item,当前显示第一个item position为0,点击item内的便签都正常 ,当getView返回的position是1时,第二个item只显示一点点,但是操作第一个item的点击事件 都在第二个item中有反应,请问这是为什么(ps:取消复用机制也没作用)
android listview item中超链接的实现
我想在listview的textview中实现超链接,但是没有反应,是怎么回事? 还有个问题,就是适配器里面的内容怎么执行了5遍? public class FishWebActivity extends Activity { private Context context; private TextView text_title; private ListView web_list; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_fish_web); context = this; init(); fish_list(); } private void init(){ text_title = (TextView)findViewById(R.id.textView1); web_list = (ListView)findViewById(R.id.listView1); } ArrayList<HashMap<String,String>> list = new ArrayList<HashMap<String,String>>(); private void fish_list(){ HashMap<String,String> map1 = new HashMap<String,String>(); HashMap<String,String> map2 = new HashMap<String,String>(); HashMap<String,String> map3 = new HashMap<String,String>(); map1.put("webName", "中国水产-微头条"); map1.put("webAddr", "http://www.wtoutiao.com/author/fishery1958.html"); map2.put("webName", "中国水产养殖网"); map2.put("webAddr", "http://m.shuichan.cc/"); map3.put("webName", "中国水产门户网"); map3.put("webAddr", "http://3g.bbwfish.com/"); //将表添加进list list.add(map1); list.add(map2); list.add(map3); WeblistAdapter weblistAdapter = new WeblistAdapter(context,list); web_list.setAdapter(weblistAdapter); } public class WeblistAdapter extends BaseAdapter implements ListAdapter { private Context context; private ArrayList<HashMap<String,String>> list; private LayoutInflater inflater; public WeblistAdapter(Context context,ArrayList<HashMap<String,String>> list) { super(); this.context = context; this.inflater = LayoutInflater.from(context); this.list = list; } @Override public int getCount() { // TODO Auto-generated method stub return list.size(); } @Override public Object getItem(int position) { // TODO Auto-generated method stub return null; } @Override public long getItemId(int position) { // TODO Auto-generated method stub return 0; } @Override public View getView(int position, View convertView, ViewGroup parent) { // TODO Auto-generated method stub webViewItem webViewItem = null; if (convertView == null) { webViewItem = new webViewItem(); convertView = inflater.inflate(R.layout.fish_web_list_item, null, false); //webViewItem.webName = (TextView) convertView.findViewById(R.id.textUsrName); webViewItem.webAddr = (TextView)findViewById(R.id.textUsrAddr); //webViewItem.webPic = (ImageView)convertView.findViewById(R.id.webPic); convertView.setTag(webViewItem); } else { webViewItem = (webViewItem) convertView.getTag(); } Log.e("list"+position, list.get(position).get("webName")); webViewItem.webAddr.setText(list.get(position).get("webName")); SpannableString sp = new SpannableString(list.get(position).get("webName")); sp.setSpan(new URLSpan(list.get(position).get("webAddr")),0, 7,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); webViewItem.webAddr.setText(sp); webViewItem.webAddr.setMovementMethod(LinkMovementMethod.getInstance()); return convertView; } public class webViewItem { TextView webAddr; TextView webName; ImageView webPic; } } } `` ```
android listview中超链接不起作用
今天看网上listview中实现超链接,自己做了下,超链接没反应,item点击事件也没反应,去掉listview时超链接正常,这是怎么回事?附上代码。 ``` @Override public View getView(int position, View convertView, ViewGroup parent) { // TODO Auto-generated method stub webViewItem webViewItem = null; if (convertView == null) { webViewItem = new webViewItem(); convertView = inflater.inflate(R.layout.fish_web_list_item, null, false); //webViewItem.webName = (TextView) convertView.findViewById(R.id.textUsrName); webViewItem.webAddr = (TextView)convertView.findViewById(R.id.textUsrAddr); //webViewItem.webPic = (ImageView)convertView.findViewById(R.id.webPic); convertView.setTag(webViewItem); } else { webViewItem = (webViewItem) convertView.getTag(); } // Log.e("list"+position, list.get(position).get("webName")); SpannableString sp = new SpannableString(list.get(position).get("webName")); sp.setSpan(new URLSpan(list.get(position).get("webAddr")),0, list.get(position).get("webName").length(),Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); webViewItem.webAddr.setText(sp); webViewItem.webAddr.setMovementMethod(LinkMovementMethod.getInstance()); return convertView; } ```
android dialog弹出速度慢 在平板横屏和竖屏下 反应速度不一样
在小米平板上进行开发,listview 的item布局中有删除按钮和详情按钮,我在adapter中写点击事件弹出提示是否删除,但是在平板横屏下反应没问题,很流畅。但切换成竖屏时就会偶尔有延迟,会卡顿。
viewpager抢子控件焦点
如图,一个viewpager嵌套3个fragment,第一个fragment里面有一个listview,item中有一个imageview,在listview的adapter中设置imageview的点击事件,弹出一个popuwindow,第一次进入这个fragment中时,点击imageview响应点击事件,响应一次之后,再点击,无反应,然后稍微滑动viewpager或者点击一下listview的条目的时候,imageview的点击事件才响应,debug也是,应该是焦点问题,但具体的我不知道,有哪位大神帮我看看,应该改哪里 ![图片说明](https://img-ask.csdn.net/upload/201707/05/1499248558_405255.png)
关于自定义可水平滑动的view内嵌scrollview的问题
我做的是pad端,界面外层是一个自定义的可滑动的界面。左边是一个listview,右边是一个scrollview用来显示左边listview各个item的数据。我想要的效果是他俩各占据屏幕的一半,我向左滑动界面listview隐藏,scrollview会全部显示,反之同理。但是我发现水平滑动scrollview没反应,我应该怎么做使横行滑动scrollview的时候能执行自定义的view水平滑动事件。
autocomplete text view 不能运行的问题
当在程序的联系人列表中搜索联系人时,我想使用 autocompletetextview,但是成行执行不了。 Search.java: public class Search extends ListActivity { private static int[] TO = {R.id.name }; private static String[] FROM = {DbConstants.NAME, DbConstants.PHONE, DbConstants.EMAIL,_ID}; private Button sButton; private ListView lv1; private static SQLiteDatabase db; private DbCreate contacts; private Cursor cursor; private AutoCompleteTextView searchText; protected SimpleCursorAdapter adapter; protected void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.search); ArrayAdapter<String> adapter=new ArrayAdapter<String>(this,android.R.layout.simple_dropdown_item_1line,new String[] {DbConstants.NAME}); searchText=(AutoCompleteTextView)findViewById(R.id.searchtext); searchText.setAdapter(adapter); sButton=(Button)findViewById(R.id.searchButton); sButton.setOnClickListener(new OnClickListener() { public void onClick(View v) { // TODO Auto-generated method stub showDatabaseContent(); lv1 = getListView(); lv1.setTextFilterEnabled(true); } }); } search.xml: <?xml version="1.0" encoding="utf-8" ?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content"> <AutoCompleteTextView android:id="@+id/searchtext" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:hint="@string/searchDefault"> <requestFocus /> </AutoCompleteTextView> <Button android:id="@+id/searchButton" android:icon="@drawable/search" android:text="Search" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout> <TextView android:id="@android:id/empty" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/empt" /> <ListView android:id="@android:id/list" android:layout_width="fill_parent" android:layout_height="wrap_content" /> </LinearL ayout> 当我点击 search button 查找时会出错,其余时候都不出错。当我键入一个名称时也没有反应,问题出在哪里啊?
安卓新人求大神们的帮助,先谢过大家
下面这段代码为什么在我点击更新媒体库(就是menu里面的选项)没有反应呢?按理说不是应该用歌名把nameList填充满吗? 我是用真机测试的,本来是有歌曲的。 诚心求解。 ``` package com.example.tonyn.nkpdqzmusic; import android.content.ContentResolver; import android.content.Intent; import android.database.Cursor; import android.media.MediaPlayer; import android.net.Uri; import android.provider.MediaStore; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.ListView; import java.io.IOException; import java.util.ArrayList; import java.util.List; public class Main2Activity extends AppCompatActivity { private MediaPlayer mediaPlayer; private List<String> uriList = new ArrayList<>(); private List<String> nameList = new ArrayList<>(); Cursor cursor; ArrayAdapter<String> arrayAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main2); arrayAdapter = new ArrayAdapter<String>(Main2Activity.this,android.R.layout.simple_list_item_1,nameList); ListView listview = (ListView) findViewById(R.id.list_view); listview.setAdapter(arrayAdapter); listview.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { Intent intent = new Intent(MyService.ACTION_PLAY); intent.putExtra("content_uri",uriList.get(position)); startService(intent); } }); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main2,menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch(item.getItemId()){ case R.id.update_list: try { ContentResolver contentResolver = getContentResolver(); cursor = contentResolver.query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, null, null, null, null); if (cursor != null) { while (cursor.moveToNext()) { String uri = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.DATA)); String name = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.TITLE)); uriList.add(uri); nameList.add(name); } arrayAdapter.notifyDataSetChanged(); } }catch (Exception e){ e.printStackTrace(); } finally{ if(cursor!=null) cursor.close(); } break; default: } return true; } } ```
按钮按了有反应,可onItemClick却没执行到
![图片说明](https://img-ask.csdn.net/upload/201705/10/1494389301_214240.png) ![图片说明](https://img-ask.csdn.net/upload/201705/10/1494389320_136211.jpg) 1.按钮按了有反应,可onItemClick却没执行到 2.无论按哪个按钮,都显示"你点击的标题是:苹果" ``` package com.example.exer; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import android.app.AlertDialog; import android.app.ListActivity; import android.content.Context; import android.content.DialogInterface; import android.os.Bundle; import android.util.Log; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.BaseAdapter; import android.widget.Button; import android.widget.ImageView; import android.widget.ListView; import android.widget.TextView; import android.widget.Toast; public class MainActivity extends ListActivity { private static final String TAG = "MainActivity"; private List<Map<String, Object>> mdata; private int positio; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //setContentView(R.layout.activity_main); ListView mListView=getListView(); mdata = data(); mListView.setAdapter(new MyAdapter(this,mdata)); mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> l, View v, int position, long id) { Log.i(TAG, (String)mdata.get(position).get("title")); Toast.makeText(MainActivity.this, (String)mdata.get(position).get("title"), 1000).show(); } }); } class MyAdapter extends BaseAdapter{ private Context context; private LayoutInflater minflater; private ArrayList<Map<String,Object>> datalist; public MyAdapter(Context context,List<Map<String,Object>> datalist) { this.context=context; this.minflater = LayoutInflater.from(context); this.datalist=(ArrayList<Map<String,Object>>)datalist; } @Override public int getCount() { // TODO Auto-generated method stub return datalist.size(); } @Override public Object getItem(int position) { // TODO Auto-generated method stub return datalist.get(position); } @Override public long getItemId(int position) { // TODO Auto-generated method stub positio=position; return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { Hodler hodler =null; if(convertView == null){ hodler = new Hodler(); convertView = minflater.inflate(R.layout.mylist, null); hodler.img = (ImageView) convertView.findViewById(R.id.img); hodler.title = (TextView) convertView.findViewById(R.id.title); hodler.info = (TextView) convertView.findViewById(R.id.info); hodler.button = (Button) convertView.findViewById(R.id.button); convertView.setTag(hodler); }else{ hodler = (Hodler) convertView.getTag(); } hodler.img.setBackgroundResource((Integer) mdata.get(position).get("img")); hodler.title.setText((CharSequence) mdata.get(position).get("title")); hodler.info.setText((CharSequence) mdata.get(position).get("info")); hodler.button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { showdialog(); } }); return convertView; } class Hodler { public ImageView img; public TextView title; public TextView info; public Button button; } } public void showdialog() { new AlertDialog.Builder(this).setTitle("提示信息").setMessage("你点击的标题是: " +(String)mdata.get(positio).get("title")) .setPositiveButton("确定", new DialogInterface.OnClickListener(){ @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(MainActivity.this, "确定", 1000).show(); setResult(RESULT_OK); finish(); } }).setNegativeButton("取消", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { } }).show(); } public List<Map<String, Object>> data() { List<Map<String, Object>> list = new ArrayList<Map<String, Object>>(); Map<String, Object> map = new HashMap<String, Object>(); map.put("title", "苹果"); map.put("info", "apple"); map.put("img", R.drawable.ic_launcher); list.add(map); map = new HashMap<String, Object>(); map.put("title", "书"); map.put("info", "book"); map.put("img", R.drawable.ic_launcher); list.add(map); map = new HashMap<String, Object>(); map.put("title", "电脑"); map.put("info", "computer"); map.put("img", R.drawable.ic_launcher); list.add(map); map = new HashMap<String, Object>(); map.put("title", "对话"); map.put("info", "dialog"); map.put("img", R.drawable.ic_launcher); list.add(map); map = new HashMap<String, Object>(); map.put("title", "运行"); map.put("info", "run"); map.put("img", R.drawable.ic_launcher); list.add(map); return list; } @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); } } ```
android 百度地图 搜索跳转
一共有两个Activity ,第一个Activity显示地图,实现定位当前地址并输出在第一个页面的EditText里,第二个Activity是搜索页面,搜索框是EditText,ListView显示搜索结果,使用百度地图建议搜索功能。比如搜索一个万达广场,点击搜索结果后希望在第一个Activity的地图上显示当前定位地址和到万达广场的路线规划,就是起点和终点显示出来。 (这里需要起点自动获取,因为地图已经实现自动定位当前地址了,不要那种既要输入起点,又要输入终点,最后还得要点击一下确定,才会显示结果的那种无语的操作体验,整个软件是没有一个Bundle按钮的,只需要item) 现在的问题是点击第二个页面ListView里面的搜索结果万达广场,跳转到第一个页面之后没有任何反应。 谢谢各位大神哥哥姐姐~ 第一个java, package com.baidumap; import android.Manifest; import android.app.Activity; import android.content.Intent; import android.content.pm.PackageManager; import android.hardware.Sensor; import android.hardware.SensorEvent; import android.hardware.SensorEventListener; import android.hardware.SensorManager; import android.os.Bundle; import android.support.v4.app.ActivityCompat; import android.support.v4.content.ContextCompat; import android.util.Log; import android.view.View; import android.widget.EditText; import android.widget.Toast; import com.baidu.location.BDLocation; import com.baidu.location.BDLocationListener; import com.baidu.location.LocationClient; import com.baidu.location.LocationClientOption; import com.baidu.mapapi.SDKInitializer; import com.baidu.mapapi.map.BaiduMap; import com.baidu.mapapi.map.BitmapDescriptor; import com.baidu.mapapi.map.BitmapDescriptorFactory; import com.baidu.mapapi.map.MapStatus; import com.baidu.mapapi.map.MapStatusUpdateFactory; import com.baidu.mapapi.map.MapView; import com.baidu.mapapi.map.MarkerOptions; import com.baidu.mapapi.map.MyLocationConfiguration; import com.baidu.mapapi.map.MyLocationData; import com.baidu.mapapi.map.UiSettings; import com.baidu.mapapi.model.LatLng; import com.baidu.mapapi.search.core.SearchResult; import com.baidu.mapapi.search.poi.OnGetPoiSearchResultListener; import com.baidu.mapapi.search.poi.PoiDetailResult; import com.baidu.mapapi.search.poi.PoiIndoorResult; import com.baidu.mapapi.search.poi.PoiResult; import com.baidu.mapapi.search.poi.PoiSearch; public class MainActivity extends Activity { private MapView mMapView = null; private BaiduMap mBaidumap =null; private PoiSearch mPoiSearch = null; private EditText mTv = null; private LocationClient mLocClient; private MainActivity.MyLocationListener myListener = new MainActivity.MyLocationListener(); private int mCurrentDirection = 0; private Double lastX = 0.0; private MyLocationData locData; private float mCurrentAccracy; private double mCurrentLat = 0.0; private double mCurrentLon = 0.0; private String mCityName; boolean isFirstLoc = true; BitmapDescriptor mCurrentMarker; private SensorManager mSensorManager; private MyLocationConfiguration.LocationMode mCurrentMode; private MainActivity.DirectionSensorListener DirectionListener = new MainActivity.DirectionSensorListener(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); SDKInitializer.initialize(getApplicationContext()); setContentView(R.layout.content_main); mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);//获取传感器管理服务 mCurrentMode = MyLocationConfiguration.LocationMode.NORMAL; //初始化地图 mMapView = (MapView) findViewById(R.id.mapView); mTv = (EditText) findViewById(R.id.tiaozhuan); mTv.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Bundle bundle = new Bundle(); bundle.putString("userName", "zhangsan"); bundle.putInt("userAge", 100); Intent intent = new Intent(MainActivity.this, Main2Activity.class); intent.putExtras(bundle); startActivityForResult(intent, 1);// } }); /*protected void onActivityResult(int requestCode, int resultCode, Intent data) { // TODO Auto-generated method stub switch (requestCode){ case RESULT_OK: Bundle bundle=data.getExtras(); String str=bundle.getString("backData"); Toast.makeText(MainActivity.this, str,Toast.LENGTH_LONG).show(); break; default: break; }*/ mBaidumap = mMapView.getMap(); mMapView.showScaleControl(false); mMapView.showZoomControls(false); UiSettings settings = mBaidumap.getUiSettings(); settings.setOverlookingGesturesEnabled(false);//设置双指下拉时不启用3D地图 settings.setRotateGesturesEnabled(false);//设置地图不可旋转 //开启定位图层 mBaidumap.setMyLocationEnabled(true); initLocation(); //initPoiSearch(); mPoiSearch = PoiSearch.newInstance(); mPoiSearch.setOnGetPoiSearchResultListener(new OnGetPoiSearchResultListener() { @Override public void onGetPoiDetailResult(PoiDetailResult poiDetailResult) { if (poiDetailResult == null || poiDetailResult.error == SearchResult.ERRORNO.RESULT_NOT_FOUND) { Toast.makeText(MainActivity.this, "未找到结果", Toast.LENGTH_LONG) .show(); return; } if (poiDetailResult.error == SearchResult.ERRORNO.NO_ERROR) { //搜索到POI mBaidumap.clear(); mBaidumap.addOverlay(new MarkerOptions() .position(poiDetailResult.location) .icon(BitmapDescriptorFactory.fromResource(R.drawable.alf)) .title(poiDetailResult.getAddress())); //讲该POI设置为地图中心 mBaidumap.setMapStatus(MapStatusUpdateFactory.newLatLng(poiDetailResult.location)); Toast.makeText(MainActivity.this, "搜索中...", Toast.LENGTH_LONG).show(); return; } } @Override public void onGetPoiIndoorResult(PoiIndoorResult poiIndoorResult) { } @Override public void onGetPoiResult(PoiResult poiResult) { } }); } private void initLocation() { mLocClient = new LocationClient(this); mLocClient.registerLocationListener(myListener); LocationClientOption option = new LocationClientOption(); option.setOpenGps(true);//打开GPS option.setCoorType("bd09ll");//设置坐标类型 option.setIsNeedAddress(true);//是否需要地址信息 option.setScanSpan(1000); LocationPermission(); mLocClient.setLocOption(option); } private void LocationPermission() { int checkPermission = ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.ACCESS_COARSE_LOCATION); if (checkPermission != PackageManager.PERMISSION_GRANTED) { ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.ACCESS_COARSE_LOCATION}, 1); Log.d("未获得定位权限", "弹出提示"); return; } } public class DirectionSensorListener implements SensorEventListener { @Override public void onSensorChanged(SensorEvent event) { double x = event.values[SensorManager.DATA_X]; if (Math.abs(x - lastX) > 1.0) { mCurrentDirection = (int) x; //设置定位数据 locData = new MyLocationData.Builder() .accuracy(mCurrentAccracy)//精度 .direction(mCurrentDirection) //此处设置开发者获取到的方向信息,顺时针0-360 .latitude(mCurrentLat)//经度 .longitude(mCurrentLon)//纬度 .build(); mBaidumap.setMyLocationData(locData); } lastX = x; } @Override public void onAccuracyChanged(Sensor sensor, int accuracy) { } } public class MyLocationListener implements BDLocationListener { @Override public void onReceiveLocation(BDLocation bdLocation) { //map view销毁后不在处理新接受的位置 if (bdLocation == null || mMapView == null) { return; } mCurrentLat = bdLocation.getLatitude(); mCurrentLon = bdLocation.getLongitude(); mCurrentAccracy = bdLocation.getRadius(); mCityName = bdLocation.getCity(); //设置定位数据 locData = new MyLocationData.Builder() .accuracy(bdLocation.getRadius())//精度 .direction(mCurrentDirection) //此处设置开发者获取到的方向信息,顺时针0-360 .latitude(bdLocation.getLatitude())//经度 .longitude(bdLocation.getLongitude())//纬度 .build(); mBaidumap.setMyLocationData(locData); //第一次定位时,将地图位置移动到当前位置 if (isFirstLoc) { isFirstLoc = false; LatLng ll = new LatLng(bdLocation.getLatitude(), bdLocation.getLongitude()); MapStatus.Builder builder = new MapStatus.Builder(); builder.target(ll).zoom(18.0f); mBaidumap.animateMapStatus(MapStatusUpdateFactory.newMapStatus(builder.build())); mCurrentMarker = null; mBaidumap .setMyLocationConfiguration(new MyLocationConfiguration( mCurrentMode, true, null)); } } } @Override protected void onStart() { //为系统的方向传感器注册监听器 mSensorManager.registerListener(DirectionListener, mSensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION) , SensorManager.SENSOR_DELAY_UI); //启动监听 mLocClient.start(); super.onStart(); } @Override protected void onPause() { mMapView.onPause(); super.onPause(); } @Override protected void onResume() { mMapView.onResume(); super.onResume(); } @Override protected void onStop() { //取消传感器监听 mSensorManager.unregisterListener(DirectionListener); super.onStop(); } @Override protected void onDestroy() { //退出时销毁定位 mLocClient.stop(); //关闭定位图层 mBaidumap.setMyLocationEnabled(false); mMapView.onDestroy(); //mMapView = null; // mPoiSearch.destroy(); //mSuggestionSearch.destroy(); super.onDestroy(); } } 第二个java, package com.baidumap; import android.Manifest; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; import android.hardware.Sensor; import android.hardware.SensorEvent; import android.hardware.SensorEventListener; import android.hardware.SensorManager; import android.os.Bundle; import android.support.v4.app.ActivityCompat; import android.support.v4.content.ContextCompat; import android.text.Editable; import android.text.TextWatcher; import android.util.Log; import android.view.View; import android.view.inputmethod.InputMethodManager; import android.widget.AdapterView; import android.widget.EditText; import android.widget.ListView; import android.widget.Toast; import com.baidu.location.BDLocation; import com.baidu.location.BDLocationListener; import com.baidu.location.LocationClient; import com.baidu.location.LocationClientOption; import com.baidu.mapapi.SDKInitializer; import com.baidu.mapapi.map.BaiduMap; import com.baidu.mapapi.map.BitmapDescriptor; import com.baidu.mapapi.map.BitmapDescriptorFactory; import com.baidu.mapapi.map.MapStatus; import com.baidu.mapapi.map.MapStatusUpdateFactory; import com.baidu.mapapi.map.MapView; import com.baidu.mapapi.map.MarkerOptions; import com.baidu.mapapi.map.MyLocationConfiguration; import com.baidu.mapapi.map.MyLocationConfiguration.LocationMode; import com.baidu.mapapi.map.MyLocationData; import com.baidu.mapapi.map.UiSettings; import com.baidu.mapapi.model.LatLng; import com.baidu.mapapi.search.core.CityInfo; import com.baidu.mapapi.search.core.SearchResult; import com.baidu.mapapi.search.poi.OnGetPoiSearchResultListener; import com.baidu.mapapi.search.poi.PoiDetailResult; import com.baidu.mapapi.search.poi.PoiDetailSearchOption; import com.baidu.mapapi.search.poi.PoiIndoorResult; import com.baidu.mapapi.search.poi.PoiResult; import com.baidu.mapapi.search.poi.PoiSearch; import com.baidu.mapapi.search.sug.OnGetSuggestionResultListener; import com.baidu.mapapi.search.sug.SuggestionResult; import com.baidu.mapapi.search.sug.SuggestionSearch; import com.baidu.mapapi.search.sug.SuggestionSearchOption; import java.util.ArrayList; import java.util.List; import java.util.Timer; import java.util.TimerTask; public class Main2Activity extends Activity implements OnGetSuggestionResultListener { private EditText et_address; private Adapter_list_Address adapter_list_Address; private ListView myListView; private List<String> list = new ArrayList<>(); private List<String> lists = new ArrayList<>(); //地图相关 /** * 百度地图控件 */ MapView mMapView = null; /** * 百度地图实例 */ BaiduMap mBaidumap = null; //定位相关 /** * 定位客户端 */ LocationClient mLocClient; /** * 定位模式 */ private LocationMode mCurrentMode; /** * 定位图标 */ BitmapDescriptor mCurrentMarker; /** * 传感器管理器 */ private SensorManager mSensorManager; /** * 当前方向 */ private int mCurrentDirection = 0; /** * 当前经度 */ private double mCurrentLat = 0.0; /** * 当前纬度 */ private double mCurrentLon = 0.0; /** * 当前经度 */ private float mCurrentAccracy; /** * 是否首次定位 */ boolean isFirstLoc = true; /** * 定位数据 */ private MyLocationData locData; /** * 定位监听 */ private MyLocationListener myListener = new MyLocationListener(); /** * 方向监听 */ private DirectionSensorListener DirectionListener = new DirectionSensorListener(); /** * 上一次的方向 */ private Double lastX = 0.0; /** * 定位所在城市 */ private String mCityName; //poi搜索相关 /** * Poi检索实例 */ private PoiSearch mPoiSearch = null; private SuggestionSearch mSuggestionSearch = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); SDKInitializer.initialize(getApplicationContext()); setContentView(R.layout.activity_main2); mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);//获取传感器管理服务 mCurrentMode = LocationMode.NORMAL; //初始化地图 mMapView = (MapView) findViewById(R.id.mapView2); mBaidumap = mMapView.getMap(); mMapView.showScaleControl(false); mMapView.showZoomControls(false); UiSettings settings = mBaidumap.getUiSettings(); settings.setOverlookingGesturesEnabled(false);//设置双指下拉时不启用3D地图 settings.setRotateGesturesEnabled(false);//设置地图不可旋转 //开启定位图层 mBaidumap.setMyLocationEnabled(true); initLocation(); initPoiSearch(); initData(); Timer timer = new Timer(); timer.schedule(new TimerTask() { public void run() { ShowKeyboard(et_address); } }, 500); } private void initData() { et_address = (EditText) findViewById(R.id.et_address); myListView = (ListView) findViewById(R.id.lv_address); mPoiSearch = PoiSearch.newInstance(); mPoiSearch.setOnGetPoiSearchResultListener(new OnGetPoiSearchResultListener() { @Override public void onGetPoiResult(PoiResult poiResult) { if (poiResult == null || poiResult.error == SearchResult.ERRORNO.RESULT_NOT_FOUND) { Toast.makeText(Main2Activity.this, "未找到结果", Toast.LENGTH_LONG).show(); return; } if (poiResult.error == SearchResult.ERRORNO.NO_ERROR) { } if (poiResult.error == SearchResult.ERRORNO.AMBIGUOUS_KEYWORD) { //当输入关键字在本市没有找到,但是在其他城市找到时,返回包含该关键字信息的城市列表 String strInfo = "在"; for (CityInfo cityInfo : poiResult.getSuggestCityList()) { strInfo += cityInfo.city; strInfo += ","; } strInfo += "找到结果"; Toast.makeText(Main2Activity.this, strInfo, Toast.LENGTH_LONG).show(); } } @Override public void onGetPoiDetailResult(PoiDetailResult poiDetailResult) { if (poiDetailResult == null || poiDetailResult.error == SearchResult.ERRORNO.RESULT_NOT_FOUND) { Toast.makeText(Main2Activity.this, "未找到结果", Toast.LENGTH_LONG) .show(); return; } if (poiDetailResult.error == SearchResult.ERRORNO.NO_ERROR) { //搜索到POI mBaidumap.clear(); mBaidumap.addOverlay(new MarkerOptions() .position(poiDetailResult.location) .icon(BitmapDescriptorFactory.fromResource(R.drawable.alf)) .title(poiDetailResult.getAddress())); //讲该POI设置为地图中心 mBaidumap.setMapStatus(MapStatusUpdateFactory.newLatLng(poiDetailResult.location)); Toast.makeText(Main2Activity.this, "搜索中...", Toast.LENGTH_LONG).show(); return; } } @Override public void onGetPoiIndoorResult(PoiIndoorResult poiIndoorResult) { } }); //初始化建议搜索模块,注册建议搜索事件监听 mSuggestionSearch = SuggestionSearch.newInstance(); mSuggestionSearch.setOnGetSuggestionResultListener(this); et_address.addTextChangedListener(new TextWatcher() { @Override public void afterTextChanged(Editable arg0) { if (adapter_list_Address != null) { adapter_list_Address.notifyDataSetChanged(); } mSuggestionSearch .requestSuggestion((new SuggestionSearchOption()) .keyword(et_address.getText().toString()).city("北京")); } @Override public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) { if (adapter_list_Address != null) { adapter_list_Address.notifyDataSetChanged(); } mSuggestionSearch .requestSuggestion((new SuggestionSearchOption()) .keyword(et_address.getText().toString()).city("北京")); } @Override public void onTextChanged(CharSequence cs, int arg1, int arg2, int arg3) { if (cs.length() < 0) { return; } /** * 使用建议搜索服务获取建议列表,结果在onSuggestionResult()中更新 */ if (adapter_list_Address != null) { adapter_list_Address.notifyDataSetChanged(); } mSuggestionSearch .requestSuggestion((new SuggestionSearchOption()) .keyword(et_address.getText().toString()).city("北京")); } }); } @Override public void onGetSuggestionResult(final SuggestionResult msg) { // TODO Auto-generated method stub if (msg == null || msg.getAllSuggestions() == null) { Toast.makeText(Main2Activity.this, "未检索到当前地址", Toast.LENGTH_SHORT).show(); return; } if (list != null) { list.clear(); } if (lists != null) { lists.clear(); } for (SuggestionResult.SuggestionInfo info : msg.getAllSuggestions()) { Log.e("info.ccity", "info.city" + info.city + "info.district" + info.district + "info.key" + info.key); list.add(info.key); lists.add(info.city + info.district + info.key); adapter_list_Address = new Adapter_list_Address(Main2Activity.this, list, lists); myListView.setAdapter(adapter_list_Address); myListView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) { SuggestionResult.SuggestionInfo info = msg.getAllSuggestions().get(position); mPoiSearch.searchPoiDetail(new PoiDetailSearchOption().poiUid(info.uid)); Intent intentAddress = new Intent(); intentAddress.putExtra("backData",et_address.getText().toString()); setResult(RESULT_OK,intentAddress); finish(); } }); adapter_list_Address.notifyDataSetChanged(); } } public static void ShowKeyboard(View v) { InputMethodManager imm = (InputMethodManager) v.getContext().getSystemService(Context.INPUT_METHOD_SERVICE); imm.showSoftInput(v, InputMethodManager.SHOW_FORCED); } public static void HideKeyboard(View v) { InputMethodManager imm = (InputMethodManager) v.getContext().getSystemService(Context.INPUT_METHOD_SERVICE); if (imm.isActive()) { imm.hideSoftInputFromWindow(v.getApplicationWindowToken(), 0); } } /** * 初始化定位相关 */ private void initLocation() { mLocClient = new LocationClient(this); mLocClient.registerLocationListener(myListener); LocationClientOption option = new LocationClientOption(); option.setOpenGps(true);//打开GPS option.setCoorType("bd09ll");//设置坐标类型 option.setIsNeedAddress(true);//是否需要地址信息 option.setScanSpan(1000); LocationPermission(); mLocClient.setLocOption(option); } /** * poi搜索相关 */ private void initPoiSearch() { //初始化搜索模块,注册搜索事件监听 mPoiSearch = PoiSearch.newInstance(); //mPoiSearch.setOnGetPoiSearchResultListener(this); } /** * 获取GPS定位权限(Android6.0 以上需要动态获取权限) */ private void LocationPermission() { int checkPermission = ContextCompat.checkSelfPermission(Main2Activity.this, Manifest.permission.ACCESS_COARSE_LOCATION); if (checkPermission != PackageManager.PERMISSION_GRANTED) { ActivityCompat.requestPermissions(Main2Activity.this, new String[]{Manifest.permission.ACCESS_COARSE_LOCATION}, 1); Log.d("未获得定位权限", "弹出提示"); return; } } /** * 方向监听 */ public class DirectionSensorListener implements SensorEventListener { @Override public void onSensorChanged(SensorEvent event) { double x = event.values[SensorManager.DATA_X]; if (Math.abs(x - lastX) > 1.0) { mCurrentDirection = (int) x; //设置定位数据 locData = new MyLocationData.Builder() .accuracy(mCurrentAccracy)//精度 .direction(mCurrentDirection) //此处设置开发者获取到的方向信息,顺时针0-360 .latitude(mCurrentLat)//经度 .longitude(mCurrentLon)//纬度 .build(); mBaidumap.setMyLocationData(locData); } lastX = x; } @Override public void onAccuracyChanged(Sensor sensor, int accuracy) { } } /** * 定位监听 */ public class MyLocationListener implements BDLocationListener { @Override public void onReceiveLocation(BDLocation bdLocation) { //map view销毁后不在处理新接受的位置 if (bdLocation == null || mMapView == null) { return; } mCurrentLat = bdLocation.getLatitude(); mCurrentLon = bdLocation.getLongitude(); mCurrentAccracy = bdLocation.getRadius(); mCityName = bdLocation.getCity(); //设置定位数据 locData = new MyLocationData.Builder() .accuracy(bdLocation.getRadius())//精度 .direction(mCurrentDirection) //此处设置开发者获取到的方向信息,顺时针0-360 .latitude(bdLocation.getLatitude())//经度 .longitude(bdLocation.getLongitude())//纬度 .build(); mBaidumap.setMyLocationData(locData); //第一次定位时,将地图位置移动到当前位置 if (isFirstLoc) { isFirstLoc = false; LatLng ll = new LatLng(bdLocation.getLatitude(), bdLocation.getLongitude()); MapStatus.Builder builder = new MapStatus.Builder(); builder.target(ll).zoom(18.0f); mBaidumap.animateMapStatus(MapStatusUpdateFactory.newMapStatus(builder.build())); mCurrentMarker = null; mBaidumap .setMyLocationConfiguration(new MyLocationConfiguration( mCurrentMode, true, null)); } } } @Override protected void onStart() { //为系统的方向传感器注册监听器 mSensorManager.registerListener(DirectionListener, mSensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION) , SensorManager.SENSOR_DELAY_UI); //启动监听 mLocClient.start(); super.onStart(); } @Override protected void onPause() { mMapView.onPause(); super.onPause(); } @Override protected void onResume() { mMapView.onResume(); super.onResume(); } @Override protected void onStop() { //取消传感器监听 mSensorManager.unregisterListener(DirectionListener); super.onStop(); } @Override protected void onDestroy() { //退出时销毁定位 mLocClient.stop(); //关闭定位图层 mBaidumap.setMyLocationEnabled(false); mMapView.onDestroy(); mMapView = null; mPoiSearch.destroy(); mSuggestionSearch.destroy(); super.onDestroy(); } }
为什么日记的标题会和写日记的具体时间重叠?
第一,为什么日记的标题会和写日记的具体时间重叠?而且时间居然是0月? 第二,按插入会跳到另一个界面,为什么按删除什么反应都没有? ![图片说明](https://img-ask.csdn.net/upload/201701/22/1485065863_389195.png) ![图片说明](https://img-ask.csdn.net/upload/201701/22/1485065876_524081.png) MainActivity.java ``` package com.exae.shiyongsqlite; import java.util.Calendar; import android.app.Activity; import android.content.ContentValues; import android.content.Intent; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.ListView; import android.widget.SimpleCursorAdapter; public class MainActivity extends Activity { DatabaseHelper mDbHelper; private Cursor mDiaryCursor; private SQLiteDatabase mDb; private ListView mListView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mListView=(ListView)findViewById(R.id.list); mDbHelper=new DatabaseHelper(this); mDb=mDbHelper.getWritableDatabase(); renderListView(); } public long createDiary(String title,String body) { ContentValues initialValues=new ContentValues(); initialValues.put("title", title); initialValues.put("body", body); Calendar calendar=Calendar.getInstance(); String created=calendar.get(Calendar.YEAR)+"年"+calendar.get(Calendar.MONTH)+"月"+calendar.get(Calendar.DAY_OF_MONTH)+"日"+calendar.get(Calendar.HOUR_OF_DAY)+"小时"+calendar.get(Calendar.MINUTE)+"分钟"; initialValues.put("created", created); return mDb.insert("diary",null,initialValues); } public boolean deleteDiary(long rowId) { return mDb.delete("diary","_id"+"="+rowId,null)>0; } public Cursor getAllNotes() { return mDb.query("diary",new String[]{"_id","title","body","created"},null,null,null,null,null); } public boolean updateDiary(long rowId,String title,String body) { ContentValues args=new ContentValues(); args.put("title", title); args.put("body", body); Calendar calendar=Calendar.getInstance(); String created=calendar.get(Calendar.YEAR)+"年"+calendar.get(Calendar.MONTH)+"月"+calendar.get(Calendar.DAY_OF_MONTH)+"日"+calendar.get(Calendar.HOUR_OF_DAY)+"小时"+calendar.get(Calendar.MINUTE)+"分钟"; args.put("created", created); return mDb.update("diary",args,"_id"+"="+rowId,null)>0; } @Override public boolean onMenuItemSelected(int featureId,MenuItem item) { switch (item.getItemId()) { case Menu.FIRST: createDiary(); return true; case Menu.FIRST+1: deleteDiary(mListView.getSelectedItemId()); renderListView(); return true; } return super.onMenuItemSelected(featureId, item); } private void createDiary() { Intent i=new Intent(this,ActivityDiaryEdit.class); startActivityForResult(i,0); } private void renderListView() { mDiaryCursor=getAllNotes(); startManagingCursor(mDiaryCursor); String[] from=new String[]{"title","created"}; int[] to=new int[]{R.id.text1,R.id.created}; SimpleCursorAdapter notes=new SimpleCursorAdapter(this,R.layout.diary_row,mDiaryCursor,from,to); mListView.setAdapter(notes); } protected void onActivityResult(int requestCode,int resultCode,Intent intent) { super.onActivityResult(requestCode, resultCode, intent); renderListView(); } protected void onListItemClick(ListView l,View v,int position,long id) { //super.onListItemClick(l,v,position,id); Cursor c=mDiaryCursor; c.moveToPosition(position); Intent i=new Intent(this,ActivityDiaryEdit.class); i.putExtra("_id", id); i.putExtra("title", c.getString(c.getColumnIndexOrThrow("title"))); i.putExtra("body", c.getString(c.getColumnIndexOrThrow("body"))); startActivityForResult(i,1); } @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); super.onCreateOptionsMenu(menu); menu.add(0, Menu.FIRST, 0, R.string.menu_insert); menu.add(0, Menu.FIRST+1, 0, R.string.menu_delete); 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); } } ``` ActivityDiaryEdit.java ``` package com.exae.shiyongsqlite; import java.util.Calendar; import android.app.Activity; import android.content.ContentValues; import android.content.Intent; import android.database.sqlite.SQLiteDatabase; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; public class ActivityDiaryEdit extends Activity implements OnClickListener { private Button bt; private EditText mTitleText,mBodyText; DatabaseHelper mDbHelper; private long mRowId; private SQLiteDatabase mDb; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.editdiary); mDbHelper=new DatabaseHelper(this); mDb=mDbHelper.getWritableDatabase(); bt=(Button)findViewById(R.id.position); bt.setOnClickListener(this); mTitleText=(EditText)findViewById(R.id.et1); mBodyText=(EditText)findViewById(R.id.et2); Bundle extras=getIntent().getExtras(); if(extras!=null) { String title=extras.getString("title"); String body=extras.getString("body"); mRowId=extras.getLong("_id"); if(title!=null) { mTitleText.setText(title); } if(body!=null) { mBodyText.setText(body); } } } public long createDiary(String title,String body) { ContentValues initialValues=new ContentValues(); initialValues.put("title", title); initialValues.put("body", body); Calendar calendar=Calendar.getInstance(); String created=calendar.get(Calendar.YEAR)+"年"+calendar.get(Calendar.MONTH)+"月"+calendar.get(Calendar.DAY_OF_MONTH)+"日"+calendar.get(Calendar.HOUR_OF_DAY)+"小时"+calendar.get(Calendar.MINUTE)+"分钟"; initialValues.put("created", created); return mDb.insert("diary",null,initialValues); } public boolean updateDiary(long rowId,String title,String body) { ContentValues args=new ContentValues(); args.put("title", title); args.put("body", body); Calendar calendar=Calendar.getInstance(); String created=calendar.get(Calendar.YEAR)+"年"+calendar.get(Calendar.MONTH)+"月"+calendar.get(Calendar.DAY_OF_MONTH)+"日"+calendar.get(Calendar.HOUR_OF_DAY)+"小时"+calendar.get(Calendar.MINUTE)+"分钟"; args.put("created", created); return mDb.update("diary",args,"_id"+"="+rowId,null)>0; } @Override public void onClick(View v) { switch (v.getId()) { case R.id.position: String title=mTitleText.getText().toString(); String body=mBodyText.getText().toString(); if(mRowId!=0) { updateDiary(mRowId,title,body); } else createDiary(title,body); Intent mIntent=new Intent(); setResult(RESULT_OK,mIntent); finish(); } } } ``` DatabaseHelper.java ``` package com.exae.shiyongsqlite; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; public class DatabaseHelper extends SQLiteOpenHelper{ public DatabaseHelper(Context context) { super(context,"database",null,2); } public void onCreate(SQLiteDatabase db) { String DATABASE_CREATE="create table diary(_id integer primary key autoincrement,title text,body text,created text);"; db.execSQL(DATABASE_CREATE); } public void onUpgrade(SQLiteDatabase db,int arg1,int arg2) { String sql="DROP TABLE IF EXISTS diary"; db.execSQL(sql); this.onCreate(db); } } ``` ![图片说明](https://img-ask.csdn.net/upload/201701/22/1485066073_938122.png) ![图片说明](https://img-ask.csdn.net/upload/201701/22/1485066091_17145.jpg) ![图片说明](https://img-ask.csdn.net/upload/201701/22/1485066101_603157.jpg) ![图片说明](https://img-ask.csdn.net/upload/201701/22/1485066113_247493.jpg) ![图片说明](https://img-ask.csdn.net/upload/201701/22/1485066126_754431.jpg)
java.lang.IllegalStateException:
03-23 15:07:45.899: E/AndroidRuntime(12482): java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first. public class AppManagerActivity extends Activity implements OnClickListener { private List<AppInfo> mAppInfoList; private ListView lv_app_list; private MyAdapter mAdapter; private ArrayList<AppInfo> mSystemList; private ArrayList<AppInfo> mCustomerList; private TextView tv_des; private AppInfo mAppInfo; private Handler mHandler =new Handler(){ public void handleMessage(android.os.Message msg){ mAdapter = new MyAdapter(); lv_app_list.setAdapter(mAdapter); if (tv_des!=null&&mCustomerList!=null) { tv_des.setText("用户应用("+mCustomerList.size()+")"); } }; }; class MyAdapter extends BaseAdapter{ //获取适配器中条目类型的总数(改成两种,纯文字,文件+图片) @Override public int getViewTypeCount(){ return super.getViewTypeCount()+1; } //指定索引指向条目的类型,条目类型状态码指定(0(复用),1) @Override public int getItemViewType(int position){ if (position==0||position==mCustomerList.size()+1) { //返回0,代表纯文本条目的状态码 return 0; } else { //返回1,代表文本+图片条目的状态码 return 1; } } @Override public int getCount() { //listView中增加两个描述项目 return mSystemList.size()+mCustomerList.size()+2; } @Override public AppInfo getItem(int position) { if (position==0||position==mCustomerList.size()+1) { return null; }else { if (position<mCustomerList.size()+1) { return mCustomerList.get(position-1); }else { //返回应用对应条目的对象 return mSystemList.get(position-mCustomerList.size()-2); } } } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { int type = getItemViewType(position); if (type==0) { //展示纯文本灰色条目 ViewTitleHolder holder=null; if (convertView==null) { convertView=View.inflate(getApplicationContext(),R.layout.listview_app_item_title,null); holder=new ViewTitleHolder(); holder.tv_title=(TextView)convertView.findViewById(R.id.tv_title); convertView.setTag(holder); }else { holder=(ViewTitleHolder)convertView.getTag(); } if (position==0) { holder.tv_title.setText("用户应用("+mCustomerList.size()+")"); }else { holder.tv_title.setText("系统应用("+mSystemList.size()+")"); } return convertView; }else { //展示文本加图片条目 ViewHolder holder=null; if (convertView==null) { convertView=View.inflate(getApplicationContext(),R.layout.listview_app_item,null); holder=new ViewHolder(); holder.iv_icon=(ImageView)convertView.findViewById(R.id.iv_icon); holder.tv_name=(TextView)convertView.findViewById(R.id.tv_name); holder.tv_path=(TextView)convertView.findViewById(R.id.tv_path); convertView.setTag(holder); }else { holder=(ViewHolder)convertView.getTag(); } holder.iv_icon.setBackgroundDrawable(getItem(position).icon); holder.tv_name.setText(getItem(position).name); if (getItem(position).isSdCard) { holder.tv_path.setText("sd卡应用"); }else { holder.tv_path.setText("手机应用"); } return convertView; } } } static class ViewHolder{ ImageView iv_icon; TextView tv_name; TextView tv_path; } static class ViewTitleHolder{ TextView tv_title; } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_app_manager); initTitle(); initList(); } private void initList() { tv_des = (TextView)findViewById(R.id.tv_des); lv_app_list = (ListView)findViewById(R.id.lv_app_list); new Thread(){ public void run(){ mAppInfoList = AppInfoProvider.getAppInfoList(getApplicationContext()); mSystemList = new ArrayList<AppInfo>(); mCustomerList = new ArrayList<AppInfo>(); for (AppInfo appInfo : mAppInfoList) { if (appInfo.isSystem) { //系统应用 mSystemList.add(appInfo); }else { //非系统应用 mCustomerList.add(appInfo); } } mHandler.sendEmptyMessage(0); }; }.start(); lv_app_list.setOnScrollListener(new OnScrollListener(){ @Override public void onScrollStateChanged(AbsListView view, int scrollState) { // TODO Auto-generated method stub } @Override public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { //滚动过程中调用方法 //AbsListView中view就是listView对象 //firstVisibleItem第一个可见条目索引值 //visibleItemCount当前一个屏幕的可见条目数 //总共条目总数 if (mCustomerList!=null&&mSystemList!=null) { if (firstVisibleItem>=mCustomerList.size()+1) { //滚动到了系统应用 tv_des.setText("系统应用("+mSystemList.size()+")"); }else { //滚动到了用户条目 tv_des.setText("用户应用("+mCustomerList.size()+")"); } } } }); lv_app_list.setOnItemClickListener(new OnItemClickListener(){ //view点中条目指向view的对象 @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { // TODO Auto-generated method stub if (position==0||position==mCustomerList.size()+1) { return; }else { if (position<mCustomerList.size()+1) { mAppInfo = mCustomerList.get(position-1); }else { //返回应用对应条目的对象 mAppInfo=mSystemList.get(position-mCustomerList.size()-2); } showPopupWindow(view); } } }); } protected void showPopupWindow(View view) { View popupView = View.inflate(this,R.layout.popupwindow_layout,null); TextView tv_uninstall =(TextView)popupView.findViewById(R.id.tv_uninstall); TextView tv_start=(TextView)popupView.findViewById(R.id.tv_start); TextView tv_share=(TextView)popupView.findViewById(R.id.tv_share); tv_uninstall.setOnClickListener(this); tv_start.setOnClickListener(this); tv_share.setOnClickListener(this); //1,创建窗体对象,指定宽高 PopupWindow popupWindow = new PopupWindow(view, LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT,true); //2,设置一个透明背景,如果不设置,回退按钮没反应 popupWindow.setBackgroundDrawable(new ColorDrawable()); //3,指定窗体位置 popupWindow.showAsDropDown(view,50,-view.getHeight()); } /** * */ private void initTitle() { //1,获取磁盘(区分于运存)可用大小,磁盘路径 String path = Environment.getDataDirectory().getAbsolutePath(); //2,获取sd卡可用大小,sd卡路径 String sdPath = Environment.getExternalStorageDirectory().getAbsolutePath(); //3,获取以上两个路径下文件夹的可用大小 String memoryAvailSpace= Formatter.formatFileSize(this,getAvailSpace(path)); String sdMemoryAvailSpace = Formatter.formatFileSize(this,getAvailSpace(sdPath)); TextView tv_memory = (TextView) findViewById(R.id.tv_memory); TextView tv_sd_memory = (TextView) findViewById(R.id.tv_sd_memory); tv_memory.setText("磁盘可用:"+memoryAvailSpace); tv_sd_memory.setText("sd卡可用:"+sdMemoryAvailSpace); } private long getAvailSpace(String path) { //statFs获取可用磁盘大小的一个类 StatFs statFs = new StatFs(path); //获取可用区块的个数 long count = statFs.getAvailableBlocks(); //获取区块的大小 long size = statFs.getBlockSize(); //区块大小*可用区块个数=可用空间大小 return count*size; } @Override public void onClick(View v) { // TODO Auto-generated method stub } }
终于明白阿里百度这样的大公司,为什么面试经常拿ThreadLocal考验求职者了
点击上面↑「爱开发」关注我们每晚10点,捕获技术思考和创业资源洞察什么是ThreadLocalThreadLocal是一个本地线程副本变量工具类,各个线程都拥有一份线程私有的数
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过...
《奇巧淫技》系列-python!!每天早上八点自动发送天气预报邮件到QQ邮箱
此博客仅为我业余记录文章所用,发布到此,仅供网友阅读参考,如有侵权,请通知我,我会删掉。 补充 有不少读者留言说本文章没有用,因为天气预报直接打开手机就可以收到了,为何要多此一举发送到邮箱呢!!!那我在这里只能说:因为你没用,所以你没用!!! 这里主要介绍的是思路,不是天气预报!不是天气预报!!不是天气预报!!!天气预报只是用于举例。请各位不要再刚了!!! 下面是我会用到的两个场景: 每日下
面试官问我:什么是消息队列?什么场景需要他?用了会出现什么问题?
你知道的越多,你不知道的越多 点赞再看,养成习惯 GitHub上已经开源 https://github.com/JavaFamily 有一线大厂面试点脑图、个人联系方式,欢迎Star和完善 前言 消息队列在互联网技术存储方面使用如此广泛,几乎所有的后端技术面试官都要在消息队列的使用和原理方面对小伙伴们进行360°的刁难。 作为一个在互联网公司面一次拿一次Offer的面霸,打败了无数
8年经验面试官详解 Java 面试秘诀
    作者 | 胡书敏 责编 | 刘静 出品 | CSDN(ID:CSDNnews) 本人目前在一家知名外企担任架构师,而且最近八年来,在多家外企和互联网公司担任Java技术面试官,前后累计面试了有两三百位候选人。在本文里,就将结合本人的面试经验,针对Java初学者、Java初级开发和Java开发,给出若干准备简历和准备面试的建议。   Java程序员准备和投递简历的实
究竟你适不适合买Mac?
我清晰的记得,刚买的macbook pro回到家,开机后第一件事情,就是上了淘宝网,花了500元钱,找了一个上门维修电脑的师傅,上门给我装了一个windows系统。。。。。。 表砍我。。。 当时买mac的初衷,只是想要个固态硬盘的笔记本,用来运行一些复杂的扑克软件。而看了当时所有的SSD笔记本后,最终决定,还是买个好(xiong)看(da)的。 已经有好几个朋友问我mba怎么样了,所以今天尽量客观
程序员一般通过什么途径接私活?
二哥,你好,我想知道一般程序猿都如何接私活,我也想接,能告诉我一些方法吗? 上面是一个读者“烦不烦”问我的一个问题。其实不止是“烦不烦”,还有很多读者问过我类似这样的问题。 我接的私活不算多,挣到的钱也没有多少,加起来不到 20W。说实话,这个数目说出来我是有点心虚的,毕竟太少了,大家轻喷。但我想,恰好配得上“一般程序员”这个称号啊。毕竟苍蝇再小也是肉,我也算是有经验的人了。 唾弃接私活、做外
大学四年自学走来,这些珍藏的「实用工具/学习网站」我全贡献出来了
知乎高赞:文中列举了互联网一线大厂程序员都在用的工具集合,涉及面非常广,小白和老手都可以进来看看,或许有新收获。
《阿里巴巴开发手册》读书笔记-编程规约
Java编程规约命名风格 命名风格 类名使用UpperCamelCase风格 方法名,参数名,成员变量,局部变量都统一使用lowerCamelcase风格 常量命名全部大写,单词间用下划线隔开, 力求语义表达完整清楚,不要嫌名字长 ...
Python爬虫爬取淘宝,京东商品信息
小编是一个理科生,不善长说一些废话。简单介绍下原理然后直接上代码。 使用的工具(Python+pycharm2019.3+selenium+xpath+chromedriver)其中要使用pycharm也可以私聊我selenium是一个框架可以通过pip下载 pip install selenium -i https://pypi.tuna.tsinghua.edu.cn/simple/ 
阿里程序员写了一个新手都写不出的低级bug,被骂惨了。
你知道的越多,你不知道的越多 点赞再看,养成习惯 本文 GitHub https://github.com/JavaFamily 已收录,有一线大厂面试点思维导图,也整理了很多我的文档,欢迎Star和完善,大家面试可以参照考点复习,希望我们一起有点东西。 前前言 为啥今天有个前前言呢? 因为你们的丙丙啊,昨天有牌面了哟,直接被微信官方推荐,知乎推荐,也就仅仅是还行吧(心里乐开花)
Java工作4年来应聘要16K最后没要,细节如下。。。
前奏: 今天2B哥和大家分享一位前几天面试的一位应聘者,工作4年26岁,统招本科。 以下就是他的简历和面试情况。 基本情况: 专业技能: 1、&nbsp;熟悉Sping了解SpringMVC、SpringBoot、Mybatis等框架、了解SpringCloud微服务 2、&nbsp;熟悉常用项目管理工具:SVN、GIT、MAVEN、Jenkins 3、&nbsp;熟悉Nginx、tomca
Python爬虫精简步骤1 获取数据
爬虫的工作分为四步: 1.获取数据。爬虫程序会根据我们提供的网址,向服务器发起请求,然后返回数据。 2.解析数据。爬虫程序会把服务器返回的数据解析成我们能读懂的格式。 3.提取数据。爬虫程序再从中提取出我们需要的数据。 4.储存数据。爬虫程序把这些有用的数据保存起来,便于你日后的使用和分析。 这一篇的内容就是:获取数据。 首先,我们将会利用一个强大的库——requests来获取数据。 在电脑上安装
Python绘图,圣诞树,花,爱心 | Turtle篇
1.画圣诞树 import turtle screen = turtle.Screen() screen.setup(800,600) circle = turtle.Turtle() circle.shape('circle') circle.color('red') circle.speed('fastest') circle.up() square = turtle.Turtle()
作为一个程序员,CPU的这些硬核知识你必须会!
CPU对每个程序员来说,是个既熟悉又陌生的东西? 如果你只知道CPU是中央处理器的话,那可能对你并没有什么用,那么作为程序员的我们,必须要搞懂的就是CPU这家伙是如何运行的,尤其要搞懂它里面的寄存器是怎么一回事,因为这将让你从底层明白程序的运行机制。 随我一起,来好好认识下CPU这货吧 把CPU掰开来看 对于CPU来说,我们首先就要搞明白它是怎么回事,也就是它的内部构造,当然,CPU那么牛的一个东
破14亿,Python分析我国存在哪些人口危机!
2020年1月17日,国家统计局发布了2019年国民经济报告,报告中指出我国人口突破14亿。 猪哥的朋友圈被14亿人口刷屏,但是很多人并没有看到我国复杂的人口问题:老龄化、男女比例失衡、生育率下降、人口红利下降等。 今天我们就来分析一下我们国家的人口数据吧! 更多有趣分析教程,扫描下方二维码关注vx公号「裸睡的猪」 即可查看! 一、背景 1.人口突破14亿 2020年1月17日,国家统计局发布
听说想当黑客的都玩过这个Monyer游戏(1~14攻略)
第零关 进入传送门开始第0关(游戏链接) 请点击链接进入第1关: 连接在左边→ ←连接在右边 看不到啊。。。。(只能看到一堆大佬做完的留名,也能看到菜鸡的我,在后面~~) 直接fn+f12吧 &lt;span&gt;连接在左边→&lt;/span&gt; &lt;a href="first.php"&gt;&lt;/a&gt; &lt;span&gt;←连接在右边&lt;/span&gt; o
在家远程办公效率低?那你一定要收好这个「在家办公」神器!
相信大家都已经收到国务院延长春节假期的消息,接下来,在家远程办公可能将会持续一段时间。 但是问题来了。远程办公不是人在电脑前就当坐班了,相反,对于沟通效率,文件协作,以及信息安全都有着极高的要求。有着非常多的挑战,比如: 1在异地互相不见面的会议上,如何提高沟通效率? 2文件之间的来往反馈如何做到及时性?如何保证信息安全? 3如何规划安排每天工作,以及如何进行成果验收? ......
作为一个程序员,内存和磁盘的这些事情,你不得不知道啊!!!
截止目前,我已经分享了如下几篇文章: 一个程序在计算机中是如何运行的?超级干货!!! 作为一个程序员,CPU的这些硬核知识你必须会! 作为一个程序员,内存的这些硬核知识你必须懂! 这些知识可以说是我们之前都不太重视的基础知识,可能大家在上大学的时候都学习过了,但是嘞,当时由于老师讲解的没那么有趣,又加上这些知识本身就比较枯燥,所以嘞,大家当初几乎等于没学。 再说啦,学习这些,也看不出来有什么用啊!
别低估自己的直觉,也别高估自己的智商
所有群全部吵翻天,朋友圈全部沦陷,公众号疯狂转发。这两周没怎么发原创,只发新闻,可能有人注意到了。我不是懒,是文章写了却没发,因为大家的关注力始终在这次的疫情上面,发了也没人看。当然,我...
这个世界上人真的分三六九等,你信吗?
偶然间,在知乎上看到一个问题 一时间,勾起了我深深的回忆。 以前在厂里打过两次工,做过家教,干过辅导班,做过中介。零下几度的晚上,贴过广告,满脸、满手地长冻疮。   再回首那段岁月,虽然苦,但让我学会了坚持和忍耐。让我明白了,在这个世界上,无论环境多么的恶劣,只要心存希望,星星之火,亦可燎原。   下文是原回答,希望能对你能有所启发。   如果我说,这个世界上人真的分三六九等,
为什么听过很多道理,依然过不好这一生?
记录学习笔记是一个重要的习惯,不希望学习过的东西成为过眼云烟。做总结的同时也是一次复盘思考的过程。 本文是根据阅读得到 App上《万维钢·精英日课》部分文章后所做的一点笔记和思考。学习是一个系统的过程,思维模型的建立需要相对完整的学习和思考过程。以下观点是在碎片化阅读后总结的一点心得总结。
B 站上有哪些很好的学习资源?
哇说起B站,在小九眼里就是宝藏般的存在,放年假宅在家时一天刷6、7个小时不在话下,更别提今年的跨年晚会,我简直是跪着看完的!! 最早大家聚在在B站是为了追番,再后来我在上面刷欧美新歌和漂亮小姐姐的舞蹈视频,最近两年我和周围的朋友们已经把B站当作学习教室了,而且学习成本还免费,真是个励志的好平台ヽ(.◕ฺˇд ˇ◕ฺ;)ノ 下面我们就来盘点一下B站上优质的学习资源: 综合类 Oeasy: 综合
如何优雅地打印一个Java对象?
你好呀,我是沉默王二,一个和黄家驹一样身高,和刘德华一样颜值的程序员。虽然已经写了十多年的 Java 代码,但仍然觉得自己是个菜鸟(请允许我惭愧一下)。 在一个月黑风高的夜晚,我思前想后,觉得再也不能这么蹉跎下去了。于是痛下决心,准备通过输出的方式倒逼输入,以此来修炼自己的内功,从而进阶成为一名真正意义上的大神。与此同时,希望这些文章能够帮助到更多的读者,让大家在学习的路上不再寂寞、空虚和冷。 ...
雷火神山直播超两亿,Web播放器事件监听是怎么实现的?
Web播放器解决了在手机浏览器和PC浏览器上播放音视频数据的问题,让视音频内容可以不依赖用户安装App,就能进行播放以及在社交平台进行传播。在视频业务大数据平台中,播放数据的统计分析非常重要,所以Web播放器在使用过程中,需要对其内部的数据进行收集并上报至服务端,此时,就需要对发生在其内部的一些播放行为进行事件监听。 那么Web播放器事件监听是怎么实现的呢? 01 监听事件明细表 名
3万字总结,Mysql优化之精髓
本文知识点较多,篇幅较长,请耐心学习 MySQL已经成为时下关系型数据库产品的中坚力量,备受互联网大厂的青睐,出门面试想进BAT,想拿高工资,不会点MySQL优化知识,拿offer的成功率会大大下降。 为什么要优化 系统的吞吐量瓶颈往往出现在数据库的访问速度上 随着应用程序的运行,数据库的中的数据会越来越多,处理时间会相应变慢 数据是存放在磁盘上的,读写速度无法和内存相比 如何优化 设计
Linux 命令(122)—— watch 命令
1.命令简介 2.命令格式 3.选项说明 4.常用示例 参考文献 [1] watch(1) manual
Linux 命令(121)—— cal 命令
1.命令简介 2.命令格式 3.选项说明 4.常用示例 参考文献 [1] cal(1) manual
记jsp+servlet+jdbc实现的新闻管理系统
1.工具:eclipse+SQLyog 2.介绍:实现的内容就是显示新闻的基本信息,然后一个增删改查的操作。 3.数据库表设计 列名 中文名称 数据类型 长度 非空 newsId 文章ID int 11 √ newsTitle 文章标题 varchar 20 √ newsContent 文章内容 text newsStatus 是否审核 varchar 10 news...
Python新型冠状病毒疫情数据自动爬取+统计+发送报告+数据屏幕(三)发送篇
今天介绍的项目是使用 Itchat 发送统计报告 项目功能设计: 定时爬取疫情数据存入Mysql 进行数据分析制作疫情报告 使用itchat给亲人朋友发送分析报告(本文) 基于Django做数据屏幕 使用Tableau做数据分析 来看看最终效果 目前已经完成,预计2月12日前更新 使用 itchat 发送数据统计报告 itchat 是一个基于 web微信的一个框架,但微信官方并不允
作为程序员的我,大学四年一直自学,全靠这些实用工具和学习网站!
我本人因为高中沉迷于爱情,导致学业荒废,后来高考,毫无疑问进入了一所普普通通的大学,实在惭愧...... 我又是那么好强,现在学历不行,没办法改变的事情了,所以,进入大学开始,我就下定决心,一定要让自己掌握更多的技能,尤其选择了计算机这个行业,一定要多学习技术。 在进入大学学习不久后,我就认清了一个现实:我这个大学的整体教学质量和学习风气,真的一言难尽,懂的人自然知道怎么回事? 怎么办?我该如何更好的提升
新来个技术总监,禁止我们使用Lombok!
我有个学弟,在一家小型互联网公司做Java后端开发,最近他们公司新来了一个技术总监,这位技术总监对技术细节很看重,一来公司之后就推出了很多"政策",比如定义了很多开发规范、日志规范、甚至是要求大家统一使用某一款IDE。 但是这些都不是我这个学弟和我吐槽的点,他真正和我吐槽的是,他很不能理解,这位新来的技术总监竟然禁止公司内部所有开发使用Lombok。但是又没给出十分明确的,可以让人信服的理由。 于...
前端JS初级面试题二 (。•ˇ‸ˇ•。)老铁们!快来瞧瞧自己都会了么
1. 传统事件绑定和符合W3C标准的事件绑定有什么区别? 传统事件绑定 &lt;div onclick=""&gt;123&lt;/div&gt; div1.onclick = function(){}; &lt;button onmouseover=""&gt;&lt;/button&gt; 注意: 如果给同一个元素绑定了两次或多次相同类型的事件,那么后面的绑定会覆盖前面的绑定 (不支持DOM事...
2020金三银四,一篇文章教你如何征服面试官,拿到offer
2020年,跳槽面试就靠它们了,现在每天刷题,看源码文档,最近看的这些题目还是有些难度,有一部分我都要好好想一想才能回答出来,或者回答不出来,总的来说知识宽度够了深度还跟不上。所以要重点突破下底层的东西。这篇文章我总结了很久,希望对正在准备面试的同仁们有点帮助。没错我就是传说中的面霸!! 一. 面试准备 首先,是笔试题,这点是初级程序员绕不过去的坎。 笔试题一般的公司都会出的,除非你是大牛,可以选...
用Python开发实用程序 – 计算器
作者:隋顺意 一段时间前,自己制作了一个库 “sui-math”。这其实是math的翻版。做完后,python既然可以轻易的完成任何的数学计算,何不用python开发一个小程序专门用以计算呢? 现在我们越来越依赖于计算器,很多复杂的计算都离不开它。我们使用过各式各样的计算器,无论是电脑自带的,还是网也上的计算器,却都没有自己动手编写属于自己计算器。今天就让我们走进计算器的世界,用python来编写...
相关热词 c#如何定义数组列表 c#倒序读取txt文件 java代码生成c# c# tcp发送数据 c#解决时间格式带星期 c#类似hashmap c#设置istbox的值 c#获取多线程返回值 c# 包含数字 枚举 c# timespan
立即提问