Toast 信息参数的问题

我想在一个静态类中显示一个toast信息,但是Toast信息参数传递应用程序的内容时有问题。请问如何在一个静态类中显示一个toast信息?
附上我的部分代码:

 public class MainActivity extends Activity {
         public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.training_four_position);
            mEndlessRunnable = (Runnable) new UpdateRunnable();
            mEndlessRunnable.run();
    }


   private static class UpdateRunnable implements Runnable  {
   private int mState; 

   public UpdateRunnable(Handler handler, Button[] buttons) {
         mHandler = handler;
         mButtons = buttons;
   }

    public void run() {
        switch (mState) {
        case 0:
               mState = 1;
               break;
        case 1:

            mState = 0;
               // Here is the issue in my toast message
               Toast.makeText(CONTEXT, "Toast message.",Toast.LENGTH_LONG).show();
                break;
     }

  mHandler.postDelayed(this,1000)); 

  }// End of run()
  }//End of class UpdateRunnable
  } //End of MainActivity

3个回答

你可以为toast创建一个单独的方法

public void showToast(String message){

    Toast.makeText(getApplicationContext(), message, Toast.LENGTH_SHORT).show();

}//end showToast

问题应该是Toast得在UI主线程里操作,你线程传进来一个handler,可以在发个消息出去,在外面显示Toast

在activity中使用一个静态的变量

public static Context myContext;

然后在onCreate中更新

onCreate()
{
    myContext = getApplicationContext();
}

还有就是在类中的构造函数传递上下文。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
安卓 Toast.makeText 第一个参数的问题,总是出错
Toast.makeText 第一个参数的问题,总是出错 尝试了 getApplicationContext() this hots.this 就是一个普通的类 ! 好郁闷啊 ``` public class hots extends UZtop { public void nowsa(){ String showMsg = moduleContext.optString("msg"); Log.d("name", "DDD:收到消息"+showMsg); Toast.makeText(getApplicationContext(), "出错了", Toast.LENGTH_LONG).show(); } } ```
在 textview 或者 toast 中显示参数的方法
我不能在一个 toast 或者 textfield 中显示 v1,v2,v3 或者 v4 的值,但是可以显示字符串。我调用这些值出错了吗? testWheelValue(R.id.passw_1, v1); testWheelValue(R.id.passw_2, v2); testWheelValue(R.id.passw_3, v3); testWheelValue(R.id.passw_4, v4); testpins = v1 + v2 + v3 + v4; text.setText(testpins); // Toast.makeText(getBaseContext(), testpins, // Toast.LENGTH_SHORT).show(); private boolean testWheelValue(int id, int value) { return getWheel(id).getCurrentItem() == value; }
请问静态Handler里Toast.makeText()方法的第一个参数怎么设置?
最近在写的程序需要Service和Activity通信,于是想到将MainActivity里面的dataHandler改为static,再在Service里面调用sendMessage()方法。但是handler改为static后,makeText()又报错了,查了一些解决方法都没什么用,请问这个要怎么改?谢谢! 代码: ``` public static Handler dataHandler = new Handler(){ public void handleMessage(android.os.Message msg) { if (msg.what == 0) { // 处理服务器返回的id,并分配给用户 try { JSONObject jsonObject = new JSONObject(msg.obj.toString()); user.setId(jsonObject.getInt("id")); Toast.makeText(MainActivity.this, "成功连接到服务器,id = " + user.getId(), Toast.LENGTH_SHORT).show(); } catch (JSONException e) { // TODO Auto-generated catch block Toast.makeText(MainActivity.this, "用户id读取错误!", Toast.LENGTH_SHORT).show(); e.printStackTrace(); } } ... } ``` MainActivity.this 报错:No enclosing instance of the type MainActivity is accessible in scope
HttpURLConnection 重复发送请求参数的问题
new Thread() { @Override public void run() { Looper.prepare(); Date date = new Date(); String timeNow = YYMMdd.timestr(date); String mystr = MD5utils.MD5(timeNow); String urlPath = "http://" + address + "/service/AfarPosService.svc/Sale/salelist/sa/" + mystr; URL url; try { url = new URL(urlPath); JSONObject ClientKey = new JSONObject(); JSONArray jsonArray = new JSONArray(liushuis); ClientKey.put("data", jsonArray); ClientKey.put("c_cardtype", c_cardtype); ClientKey.put("message", ""); ClientKey.put("content", ""); contentLiuShui = String.valueOf(ClientKey); Log.e("发送实时流水contentLiuShui", contentLiuShui + ""); conn = (HttpURLConnection) url.openConnection(); conn.setConnectTimeout(20000); conn.setReadTimeout(20000); conn.setChunkedStreamingMode(0); conn.setDoInput(true);// 设置是否从httpUrlConnection读入,默认情况下是true; conn.setDoOutput(true);//设置是否向httpUrlConnection输出,post请求,参数要放在http正文内,因此需要设为true, 默认情况下是false; conn.setUseCaches(false);//设置是否用缓存 Post 请求不能使用缓存 ,设置为false conn.setRequestMethod("POST");//设定请求的方法为"POST",默认是GET conn.setRequestProperty("ser-Agent", "Fiddler"); conn.setRequestProperty("Content-Type", "application/json"); OutputStream os = conn.getOutputStream();//此处getOutputStream会隐含的进行comm.connect(); Log.e("os", os + ""); os.write(contentLiuShui.getBytes()); os.close(); int code = conn.getResponseCode(); Log.e("发送实时流水code", code + ""); if (code == 200) { InputStream is = conn.getInputStream(); String json = NetUtils.readString(is); Log.e("返回实时流水json", json + ""); com.alibaba.fastjson.JSONObject jsonObject = com.alibaba.fastjson.JSONObject.parseObject(json); String panduan = (String) jsonObject.get("message"); String yichang = (String) jsonObject.get("content"); if (panduan.equals("0")) { } else if (panduan.equals("4") || panduan.equals("7")) { } else { Toast.makeText(PaymentMoneyActivity1.this, yichang, Toast.LENGTH_LONG).show(); } } else { Toast.makeText(PaymentMoneyActivity1.this, "与服务器连接失败", Toast.LENGTH_SHORT).show(); } } catch (Exception e) { Toast.makeText(PaymentMoneyActivity1.this, "网络连接超时,请检查网络", Toast.LENGTH_SHORT).show(); e.printStackTrace(); } finally { Toast.makeText(PaymentMoneyActivity1.this, "网络连接超时,zouazheloosg", Toast.LENGTH_SHORT).show(); if (conn != null) { conn.disconnect(); Log.e("断开了", "断开了耶!"); } } Looper.loop(); } }.start(); ``` ``` 现存问题: 第一次进行网络请求的时候(时间A,数据data1),如果网络不好超时了,再次接着请求该接口(时间B,数据data2),服务器会收到两次请求的数据:时间A的data1和时间B的data2! 注意:如果多次超时请求,最终后台服务器会接收到多次不同的data! 本人技术小白,还请大神能够指点出错误和解决的办法! 求加QQ在线讨论,在线等解救QQ:379077640
rawQuery 参数问题求解
``` cursor = db.rawQuery("select * from 库存 where 产品号=1 and 仓库号='ck01'",null); cursor.moveToFirst(); lw1 = cursor.getColumnIndex("库存量"); do{ lw2 = cursor.getInt(lw1); (int的lw2) Toast.makeText(RuKu.this,""+lw2,Toast.LENGTH_SHORT).show(); }while (cursor.moveToNext()); cursor.close(); ``` 上面的代码运行到 lw2 = cursor.getInt(lw1) 卡住,并且程序闪退 第一行RawQuery换成这个:cursor = db.rawQuery("select * from 库存 where 产品号=1 ",null); (把 仓库号=’ck01’ 去掉) 便可正常运行 求解!! 库存表: 仓库号 char(10) 产品号 int 库存量 int 仓库号 产品号 库存量 ck01 1 100 ck01 2 0 ck02 1 0 ck02 2 100 ck01 3 100 ck02 3 100 我想只读取到一个int库存量
安卓开发JDBC连接数据库No static method metafactory错误怎么解决?
直接上代码 JdbcUtil类 ``` package com.example.myapplication; import java.io.File; import java.io.FileInputStream; import java.sql.Connection; import java.sql.DriverManager; import java.util.Properties; public class JdbcUtil { private static JdbcUtil instance; public static JdbcUtil getInstance(){ if (instance ==null){ instance = new JdbcUtil(); } return instance; } public Connection getConnection(String dbName,String name,String password) { try { new com.mysql.cj.jdbc.Driver(); String url = "jdbc:mysql://localhost:3306/"+dbName; return DriverManager.getConnection(url,name,password); } catch (Exception e) { return null; } } public Connection getConnection(String file){ File f = new File(file); if(!f.exists()){ return null; }else { Properties pro = new Properties(); try { Class.forName("com.mysql.jdbc.Driver"); pro.load(new FileInputStream(f)); String url = pro.getProperty("url"); String name = pro.getProperty("name"); String password = pro.getProperty("password"); return DriverManager.getConnection(url,name,password); }catch (Exception e){ return null; } } } } ``` UserDao类 ``` package com.example.myapplication; import android.util.Log; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import static android.content.ContentValues.TAG; public class UserDao { JdbcUtil jdbcUtil = JdbcUtil.getInstance(); //第一个参数为数据库名称,第二个参数为数据库账号 第三个参数为数据库密码 Connection conn = jdbcUtil.getConnection("test","root","LHMbdbqandr2015"); //注册 public boolean register(String name,String password){ if (conn==null){ Log.i(TAG,"register:conn is null"); return false; }else { //进行数据库操作 String sql = "insert into user(name,password) values(?,?)"; try { PreparedStatement pre = conn.prepareStatement(sql); pre.setString(1,name); pre.setString(2,password); return pre.execute(); } catch (SQLException e) { return false; }finally { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } } //登录 public boolean login(String name,String password){ if (conn==null){ Log.i(TAG,"register:conn is null"); return false; }else { String sql = "select * from user where name=? and password=?"; try { PreparedStatement pres = conn.prepareStatement(sql); pres.setString(1,name); pres.setString(2,password); ResultSet res = pres.executeQuery(); boolean t = res.next(); return t; } catch (SQLException e) { return false; } } } } ``` MainActivity文件 ``` package com.example.myapplication; import android.Manifest; import android.content.Intent; import android.content.pm.PackageManager; import android.os.Build; import android.os.Bundle; import android.os.Looper; import android.os.Trace; import android.util.Log; import android.view.View; import android.widget.EditText; import android.widget.Toast; import androidx.appcompat.app.AppCompatActivity; public class MainActivity extends AppCompatActivity { private static final String TAG="MainActivity"; private EditText name; private EditText password; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); name = findViewById(R.id.name); password = findViewById(R.id.password); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { if (checkSelfPermission(Manifest.permission.INTERNET) != PackageManager.PERMISSION_GRANTED) { // TODO: Consider calling // Activity#requestPermissions requestPermissions(new String[]{Manifest.permission.INTERNET},1); // here to request the missing permissions, and then overriding // public void onRequestPermissionsResult(int requestCode, String[] permissions, // int[] grantResults) // to handle the case where the user grants the permission. See the documentation // for Activity#requestPermissions for more details. return; } } } //用户根据点击事件来找到相应的功能 public void fun(View v){ switch (v.getId()){ case R.id.register: new Thread(new Runnable() { @Override public void run() { String n = name.getText().toString().trim(); String psw = password.getText().toString().trim(); UserDao ud = new UserDao(); boolean result =ud.register(n,psw); if (!result){ Looper.prepare(); Toast toast = Toast.makeText(MainActivity.this,"注册成功!",Toast.LENGTH_SHORT); toast.show(); Looper.loop(); } Log.i(TAG,"fun"+result); //以上为jdbc注册 } }).start(); break; case R.id.login: new Thread(new Runnable() { @Override public void run() { String n = name.getText().toString().trim(); String psw = password.getText().toString().trim(); if (n.equals("")||psw.equals("")){ Looper.prepare(); Toast toast = Toast.makeText(MainActivity.this,"输入不能为空!",Toast.LENGTH_SHORT); toast.show(); Looper.loop(); } UserDao ud = new UserDao(); Boolean result = ud.login(n,psw); if (!result){ Looper.prepare(); Toast toast=Toast.makeText(MainActivity.this,"用户名不存在或密码错误!",Toast.LENGTH_SHORT); toast.show(); Looper.loop(); }else{ Looper.prepare(); Toast toast=Toast.makeText(MainActivity.this,"登录成功",Toast.LENGTH_SHORT); toast.show(); //一下代码为跳转界面 // Intent intent=new Intent(MainActivity.this,info.class); //intent.putExtra("name",n); // startActivity(intent); Looper.loop(); } //以上为jdbc登录 } }).start(); } } } ``` 现在遇到的问题如下 ``` 11/14 01:40:49: Launching 'app' on Nexus 5X API 29 x86. $ adb shell am start -n "com.example.myapplication/com.example.myapplication.MainActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER Waiting for process to come online... Connected to process 23852 on device 'emulator-5554'. Capturing and displaying logcat messages from application. This behavior can be disabled in the "Logcat output" section of the "Debugger" settings page. I/e.myapplicatio: Not late-enabling -Xcheck:jni (already on) E/e.myapplicatio: Unknown bits set in runtime_flags: 0x8000 W/e.myapplicatio: Unexpected CPU variant for X86 using defaults: x86 D/libEGL: Emulator has host GPU support, qemu.gles is set to 1. W/libc: Unable to set property "qemu.gles" to "1": connection failed; errno=13 (Permission denied) W/RenderThread: type=1400 audit(0.0:129): avc: denied { write } for name="property_service" dev="tmpfs" ino=8368 scontext=u:r:untrusted_app:s0:c130,c256,c512,c768 tcontext=u:object_r:property_socket:s0 tclass=sock_file permissive=0 app=com.example.myapplication D/libEGL: loaded /vendor/lib/egl/libEGL_emulation.so D/libEGL: loaded /vendor/lib/egl/libGLESv1_CM_emulation.so D/libEGL: loaded /vendor/lib/egl/libGLESv2_emulation.so W/e.myapplicatio: Accessing hidden method Landroid/view/View;->computeFitSystemWindows(Landroid/graphics/Rect;Landroid/graphics/Rect;)Z (greylist, reflection, allowed) Accessing hidden method Landroid/view/ViewGroup;->makeOptionalFitsSystemWindows()V (greylist, reflection, allowed) D/: HostConnection::get() New Host Connection established 0xd7d24f50, tid 23910 D/: HostComposition ext ANDROID_EMU_CHECKSUM_HELPER_v1 ANDROID_EMU_native_sync_v2 ANDROID_EMU_native_sync_v3 ANDROID_EMU_dma_v1 ANDROID_EMU_direct_mem ANDROID_EMU_host_composition_v1 ANDROID_EMU_host_composition_v2 ANDROID_EMU_vulkan ANDROID_EMU_deferred_vulkan_commands ANDROID_EMU_vulkan_null_optional_strings ANDROID_EMU_vulkan_create_resources_with_requirements ANDROID_EMU_YUV420_888_to_NV21 ANDROID_EMU_YUV_Cache GL_OES_EGL_image_external_essl3 GL_OES_vertex_array_object GL_KHR_texture_compression_astc_ldr ANDROID_EMU_gles_max_version_3_1 W/OpenGLRenderer: Failed to choose config with EGL_SWAP_BEHAVIOR_PRESERVED, retrying without... D/eglCodecCommon: setVertexArrayObject: set vao to 0 (0) 0 0 D/EGL_emulation: eglCreateContext: 0xe3340b60: maj 3 min 1 rcv 4 D/EGL_emulation: eglMakeCurrent: 0xe3340b60: ver 3 1 (tinfo 0xe338bc10) E/eglCodecCommon: glUtilsParamSize: unknow param 0x000082da glUtilsParamSize: unknow param 0x000082da W/Gralloc3: mapper 3.x is not supported D/: createUnique: call D/: HostConnection::get() New Host Connection established 0xd7d26ad0, tid 23910 HostComposition ext ANDROID_EMU_CHECKSUM_HELPER_v1 ANDROID_EMU_native_sync_v2 ANDROID_EMU_native_sync_v3 ANDROID_EMU_dma_v1 ANDROID_EMU_direct_mem ANDROID_EMU_host_composition_v1 ANDROID_EMU_host_composition_v2 ANDROID_EMU_vulkan ANDROID_EMU_deferred_vulkan_commands ANDROID_EMU_vulkan_null_optional_strings ANDROID_EMU_vulkan_create_resources_with_requirements ANDROID_EMU_YUV420_888_to_NV21 ANDROID_EMU_YUV_Cache GL_OES_EGL_image_external_essl3 GL_OES_vertex_array_object GL_KHR_texture_compression_astc_ldr ANDROID_EMU_gles_max_version_3_1 D/eglCodecCommon: allocate: Ask for block of size 0x1000 D/eglCodecCommon: allocate: ioctl allocate returned offset 0x3ffff6000 size 0x2000 D/EGL_emulation: eglMakeCurrent: 0xe3340b60: ver 3 1 (tinfo 0xe338bc10) D/eglCodecCommon: setVertexArrayObject: set vao to 0 (0) 0 0 I/AssistStructure: Flattened final assist data: 1788 bytes, containing 1 windows, 10 views W/e.myapplicatio: Accessing hidden method Ljava/lang/invoke/LambdaMetafactory;->metafactory(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; (blacklist, linking, denied) E/AndroidRuntime: FATAL EXCEPTION: Thread-2 Process: com.example.myapplication, PID: 23852 java.lang.NoSuchMethodError: No static method metafactory(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; in class Ljava/lang/invoke/LambdaMetafactory; or its super classes (declaration of 'java.lang.invoke.LambdaMetafactory' appears in /apex/com.android.runtime/javalib/core-oj.jar) at com.mysql.cj.conf.ConnectionUrl.buildConnectionStringCacheKey(ConnectionUrl.java:246) at com.mysql.cj.conf.ConnectionUrl.getConnectionUrlInstance(ConnectionUrl.java:185) at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:204) at java.sql.DriverManager.getConnection(DriverManager.java:580) at java.sql.DriverManager.getConnection(DriverManager.java:218) at com.example.myapplication.JdbcUtil.getConnection(JdbcUtil.java:22) at com.example.myapplication.UserDao.<init>(UserDao.java:15) at com.example.myapplication.MainActivity$1.run(MainActivity.java:53) at java.lang.Thread.run(Thread.java:919) D/EGL_emulation: eglMakeCurrent: 0xe3340b60: ver 3 1 (tinfo 0xe338bc10) D/AutofillManager: onActivityFinishing(): calling cancelLocked() Process 23852 terminated. ``` 在网上百度了很多方法都没有解决,起初以为是驱动的问题,但是换了一个仍然不好用,求求大神赐教
JAVA传参的问题 如何让多个线程可以调用一个参数
先贴出代码 private Handler handler = new Handler() { @Override public void handleMessage(Message msg) { if (msg.what == 01234) { Bundle bundle = msg.getData(); String s = bundle.getString("e1"); System.out.println(s); Toast.makeText(MainActivity.mactivity, s, Toast.LENGTH_SHORT).show(); } ``` ``` 在外部类A里面用handler接收了其他函数传来的消息然后放在String s 里面,现在想在主类mainactivity里面调用到这个s的值要怎么做?我已经试过把String s定义成静态方法了是不行的因为我定义的时候 public static String s = "";然后再handler里面赋值,调用的时候还是会调 s = ""的这个空值 而且我觉得在程序里面最好还是少用static 定义变量好吧。 请问这个要怎么做才能实现调用呢?谢谢了!还望指点!!!
Android 蓝牙通信问题
安卓开发萌新。在做一个蓝牙通信的APP,现在打开蓝牙可以搜索到周围一开启蓝牙的设备,点击连接后,也会出现配对的窗口,但软件会出现闪退,不知是何问题。以下是源代码,希望各路大佬可以帮我解决一下这个问题,是否是线程未开启呢。是否是因为我已经设置与单片机通信的UUID的问题。 ``` package com.windfire; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.ArrayList; import java.util.List; import java.util.UUID; import android.app.Activity; import android.bluetooth.BluetoothAdapter; import android.bluetooth.BluetoothDevice; import android.bluetooth.BluetoothSocket; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.view.View; import android.view.View.OnClickListener; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.ListView; import android.widget.TextView; import android.widget.Toast; public class WindFireDemoActivity extends Activity implements OnClickListener { /** Called when the activity is first created. */ /*建立蓝牙适配器,搜索可连接设备,进行配对,*/ public static final int RECV_VIEW = 0; private BluetoothAdapter mBluetoothAdapter;//蓝牙适配器 private ArrayAdapter<String> deviceAdapter;//设备显示列表适配器 private ConnectThread connectthread; private List<String> listDevices; private ListView text;//显示需要配对设备 private Button parameterinput;//参数录入 private Button teststart;//开始测试 private Button search;//寻找设备按钮 private Button send;//发送按钮 private TextView datatest; private boolean sendflag = false; private final UUID MY_UUID = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");//蓝牙串口服务 @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setTheme(android.R.style.Theme_Black_NoTitleBar); setContentView(R.layout.main); initview();//实例化 initBroadcast();//初始化广播 mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();//获取本地蓝牙适配器,初始化蓝牙 //是否支持蓝牙功能 if(mBluetoothAdapter == null) { Toast.makeText(WindFireDemoActivity.this, "所持设备不支持蓝牙", Toast.LENGTH_SHORT).show(); } } /************************定义广播接收,查找设备,检查配对信息,添加到listDevices中*************************/ private BroadcastReceiver mReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction();//服务发现远程设备时 String str = ""; if(BluetoothDevice.ACTION_FOUND.equals(action))//每扫描到一个设备,系统都会发送此广播 { //从Intent中获取device信息 BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);//获取搜索到的设备信息 str = device.getName()+ ":" + device.getAddress() + "\n"; //当发现的新设备不存在于设备配对列表中时,将设备的名字和地址添加到ArrayAdapter中 if(listDevices.indexOf(str) == -1)//防止重复添加 { listDevices.add(str);//添加搜索到的设备信息 deviceAdapter.notifyDataSetChanged(); } } else if(BluetoothAdapter.ACTION_DISCOVERY_FINISHED.equals(action)) { Toast.makeText(WindFireDemoActivity.this, "Discovery finished", Toast.LENGTH_SHORT).show(); } } }; /**************************************UI实例化*************************************************/ public void initview() { parameterinput =(Button)findViewById(R.id.input); teststart =(Button)findViewById(R.id.start); search =(Button)findViewById(R.id.button); send =(Button)findViewById(R.id.send); text = (ListView)findViewById(R.id.listView1); datatest = (TextView)findViewById(R.id.datatest); parameterinput.setOnClickListener(this); teststart.setOnClickListener(this); search.setOnClickListener(this); send.setOnClickListener(this); listDevices = new ArrayList<String>(); deviceAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, listDevices);//列表显示listDevices的设备名称及mac text.setAdapter(deviceAdapter); text.setOnItemClickListener( new OnItemClickListener(){ @Override public void onItemClick(AdapterView<?> adapterview, View view, int position,long id) { // TODO Auto-generated method stub //绑定所选择的蓝牙MAC地址设备 String str = deviceAdapter.getItem(position); if(null == str) { Toast.makeText(getApplicationContext(), "未选中设备", Toast.LENGTH_SHORT).show(); } String mac = str.substring(str.indexOf(":")+1).trim(); BluetoothDevice device = mBluetoothAdapter.getRemoteDevice(mac);//以mac去创建一个device connectthread = new ConnectThread(device); connectthread.start(); Toast.makeText(getApplicationContext(), "连接到所选设备", Toast.LENGTH_SHORT).show(); } }); } @Override public void onClick(View v) { // TODO Auto-generated method stub switch(v.getId()) { case R.id.input: Intent intent1 = new Intent(WindFireDemoActivity.this,parametershow.class); startActivity(intent1); break; case R.id.start: Intent intent2 = new Intent(WindFireDemoActivity.this,datashow.class); startActivity(intent2); break; case R.id.button: if(!mBluetoothAdapter.isEnabled()) { Intent enabler=new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE); startActivity(enabler);//开启蓝牙 if (mBluetoothAdapter.isEnabled())//设置可见 { if (mBluetoothAdapter.getScanMode()!=BluetoothAdapter.SCAN_MODE_CONNECTABLE_DISCOVERABLE) { Intent discoverableIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE); discoverableIntent.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 200); startActivity(discoverableIntent); } } } if (mBluetoothAdapter.isDiscovering()) { mBluetoothAdapter.cancelDiscovery(); Toast.makeText(getApplicationContext(), "Exit Discovery", Toast.LENGTH_SHORT).show(); } else//搜索未开始 { mBluetoothAdapter.startDiscovery();//开始搜索 Toast.makeText(getApplicationContext(), "Start Discovery", Toast.LENGTH_SHORT).show(); } break; case R.id.send: if(connectthread != null)//连接建立完成,准备发送指令开始通信 { try { sendflag = true; String str = "0x33"; connectthread.write(getHexBytes(str)); datatest.setText("send success"); } catch(Exception e) { e.printStackTrace(); } } else { Toast.makeText(WindFireDemoActivity.this, "未连接蓝牙设备", Toast.LENGTH_SHORT).show(); } break; } } /**************************************Broadcast初始化*************************************************/ public void initBroadcast(){ IntentFilter filter = new IntentFilter(); filter.addAction(BluetoothDevice.ACTION_FOUND); filter.addAction(BluetoothAdapter.ACTION_DISCOVERY_FINISHED); registerReceiver(mReceiver,filter); } /**************************************连接线程*************************************************/ public class ConnectThread extends Thread { private BluetoothSocket btSocket; private InputStream in; private OutputStream out; //private BluetoothDevice btDev; public ConnectThread (BluetoothDevice device) { try { btSocket = device.createRfcommSocketToServiceRecord(MY_UUID); } catch(IOException e) { e.printStackTrace(); } } public void run() { //发现服务会减慢连接建立速度,因此关闭掉 if(mBluetoothAdapter.isDiscovering()) { mBluetoothAdapter.cancelDiscovery(); }//退出搜索 try { //请求连接,该操作会阻塞线程 btSocket.connect(); Toast.makeText(WindFireDemoActivity.this, "连接建立", Toast.LENGTH_SHORT).show(); in = btSocket.getInputStream(); out = btSocket.getOutputStream(); if(sendflag) { new Thread(new Runnable(){ @Override public void run(){ byte[] buffer = new byte[1024]; int bytes; try{ while((bytes = in.read(buffer)) != -1) { String str = new String(buffer,"UTF-8"); str = str.substring(0, bytes); if(str.endsWith(" ")) { datatest.append(str); continue; } Bundle bundle = new Bundle(); Message message = new Message(); bundle.putString("recv", datatest.toString()); message.what = RECV_VIEW; message.setData(bundle); handler.sendMessage(message); } } catch(IOException e) { e.printStackTrace(); } } }).start(); } } catch(IOException e){ try{ btSocket.close(); } catch(IOException e1){ e1.printStackTrace(); } e.printStackTrace(); } } public void write(byte[] bytes) { try { out.write(bytes); } catch(IOException e) { e.printStackTrace(); } } public void cancel() { try { btSocket.close(); } catch (IOException e) { } } } /******************************************Handler处理message*************************************/ private Handler handler = new Handler() { @Override public void handleMessage(Message msg) { Bundle bundle = null; switch(msg.what) { case RECV_VIEW: bundle = msg.getData(); String recv = bundle.getString("recv"); datatest.append(recv+"\n"); break; default: Toast.makeText(getApplicationContext(), "接受信息失败", Toast.LENGTH_SHORT).show(); /*case NOTICE_VIEW: bundle = msg.getData(); String notice = bundle.getString("notice"); datatest.append(notice);*/ break; } } }; public byte[] getHexBytes(String message) { int len = message.length() / 2; char[] chars = message.toCharArray(); String[] hexStr = new String[len]; byte[] bytes = new byte[len]; for (int i = 0, j = 0; j < len; i += 2, j++) { hexStr[j] = "" + chars[i] + chars[i + 1]; bytes[j] = (byte) Integer.parseInt(hexStr[j], 16); } return bytes; } @Override protected void onDestroy() { unregisterReceiver(mReceiver); super.onDestroy(); } } ``` 希望尽快解答
popupWindow中如何获得上下文
自定义了一个PopupWindow类,想要在类里有一个获得上下文的方法,以便使用,比如 Toast中第一个参数Toast.make(context,“111111”,0).show();
安卓Activity之间的跳转的问题
我通过登录的Activity在登录通过服务器验证过后,需要跳转到MainActivity,MainActivity中包含了两个Fragment,我使用: Toast.makeText(Login.this, "登录成功", Toast.LENGTH_SHORT).show(); Intent intent = new Intent(Login.this, MainActivity.class); intent.putExtra("id", 999); startActivity(intent); finish(); 然后在MainActivity中的onResume方法接受Intent传过来的参数,根据参数选择显示的Fragment,但是当我登录成功,开始跳转时,程序黑屏卡死,然后出现ANR异常,现在毫无头绪。请帮帮忙,O(∩_∩)O谢谢。
Android中如何把handlerMessage中返回的数据返回给主线程调用?
问题描述:我在主线程中调用WebService,通过handleMessage成功获取服务器返回的Json字符串。不过我还需要调用另外一个WebService的接口,需要把上一个返回的的字符作为传入参数。现在的问题是不知道如何把handleMessage中的变量返回到主线程中。请问该如何做到,代码中就是想在onCreate中获取instanceId这个参数,该如何实现? protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_scan); init() ; setListen(); getData(); private void getData(){ new Thread() { public void run() { Looper.prepare(); myscanData= WebServiceUtil.getscanlist(taskId,locationId,userId,tokenSecurityLogin,mHandler); System.out.println("扫描巡更点后:"+myscanData); //获取巡更点的实例 Toast.makeText(getApplication(),instanceId,Toast.LENGTH_SHORT).show(); //show(); Looper.loop(); } }.start(); } ** Toast.makeText(getApplication(),instanceId,Toast.LENGTH_SHORT).show(); } ............................................ final Handler mHandler=new Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); switch(msg.what){ case GET_XunJianScan: System.out.println("进入线路巡更点"); XunJianInstanceBean bean=new XunJianInstanceBean(); if (!msg.obj.toString().equals("error")) { try { myScanList.clear(); String strByJson = msg.obj.toString(); //Json的解析类对象 JSONArray jsonArray = new JSONObject(strByJson).getJSONArray("lzq"); for (int i = 0; i < jsonArray.length(); i++) { JSONObject obj = ((JSONObject) jsonArray.opt(i)); String ID = obj.getString("ID"); String Remark = obj.getString("Remark"); String taskid=obj.getString("taskid"); String locationid=obj.getString("locationid"); String uid=obj.getString("uid"); String createdate1=obj.getString("createdate1"); String place=obj.getString("place"); bean.setID(ID); bean.setRemark(Remark); bean.setTaskid(taskid); bean.setLocationid(locationid); bean.setUid(uid); bean.setCreatedate1(createdate1); bean.setPlace(place); ** instanceId=ID;** } } catch (Exception e) { e.printStackTrace(); } } else { Toast.makeText(getApplication(), "加载巡检数据失败", Toast.LENGTH_SHORT).show(); } break; } if (mProgressDialog != null) { mProgressDialog.dismiss(); } } };
onActivityResult里面的一个问题
protected void onActivityResult(int requestCode, int resultCode, Intent data) { // TODO Auto-generated method stub switch (resultCode) { case 1: //这里面包含一些代码,是对的 break; case 2: String place=data.getStringExtra("place"); Toast.makeText(MainActivity.this,place,2000).show(); try { showPlace(place); } catch (Exception e) { // TODO: handle exception Toast.makeText(MainActivity.this,"错误",2000).show(); } break; default: break; } } 在case2里面,得到了place参数,这个参数是从另一个Activity传过来的,我用Toast可以显示出来,但是我这个showPlace()函数始终没有运行,我测试了一下这个函数是可以运行的,为什么在这里就无法运行了,求解答。
JAVA 传参的问题 这个要怎么传
private Handler handler = new Handler() { @Override public void handleMessage(Message msg) { if (msg.what == 01234) { Bundle bundle = msg.getData(); String MalformedURLException = bundle.getString("e1"); System.out.println(MalformedURLException); Toast.makeText(MainActivity.mactivity, MalformedURLException, Toast.LENGTH_SHORT).show(); } ``` ``` 在handler里面的String 参数 怎么传出来呀
怎么把百度的鹰眼轨迹嵌入Android
请问百度的鹰眼轨迹怎么嵌入Android,Android不做展示只做记录,看了网上的教程,大部分都集成了百度地图,官网的教程又不能运行. 如下,getApplicationContext为空,请问是不能这么写,还是我的写法有问题,求教。。 最下面有错误信息 // 轨迹服务ID long serviceId = 111111; // 设备标识 String entityName = "Ly"; // 是否需要对象存储服务,默认为:false,关闭对象存储服务。注:鹰眼 Android SDK v3.0以上版本支持随轨迹上传图像等对象数据,若需使用此功能,该参数需设为 true,且需导入bos-android-sdk-1.0.2.jar。 boolean isNeedObjectStorage = false; // 初始化轨迹服务 mTrace = new Trace(serviceId, entityName, isNeedObjectStorage); // 初始化轨迹服务客户端 mTraceClient = new LBSTraceClient(getApplicationContext()); button1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { BaiduStart(); } }); button2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { End(); } }); } public void BaiduStart(){ // 定位周期(单位:秒) int gatherInterval = 5; // 打包回传周期(单位:秒) int packInterval = 10; // 设置定位和打包周期 mTraceClient.setInterval(gatherInterval, packInterval); mTraceClient.startTrace(mTrace, mTraceListener); mTraceClient.startGather(mTraceListener); } public void End(){ mTraceClient.stopTrace(mTrace, mTraceListener); } // 初始化轨迹服务监听器 OnTraceListener mTraceListener = new OnTraceListener() { @Override public void onBindServiceCallback(int i, String s) { } // 开启服务回调 @Override public void onStartTraceCallback(int status, String message) { Toast.makeText(getApplication(),"服务开启了"+message,Toast.LENGTH_LONG); } // 停止服务回调 @Override public void onStopTraceCallback(int status, String message) { Toast.makeText(getApplication(),"停止服务回调"+message,Toast.LENGTH_LONG); } // 开启采集回调 @Override public void onStartGatherCallback(int status, String message) { Toast.makeText(getApplication(),"开启采集回调"+message,Toast.LENGTH_LONG); } // 停止采集回调 @Override public void onStopGatherCallback(int status, String message) { Toast.makeText(getApplication(),"停止采集回调"+message,Toast.LENGTH_LONG); } // 推送回调 @Override public void onPushCallback(byte messageNo, PushMessage message) { Toast.makeText(getApplication(),"推送回调"+message,Toast.LENGTH_LONG); } @Override public void onInitBOSCallback(int i, String s) { } }; ![图片说明](https://img-ask.csdn.net/upload/201801/26/1516976830_529068.png)
androi高德地图路径规划问题
有做过高德路径规划的大神吗?下面是我仿照的高德官方案例来写的代码,可是总是报错,然后错误码是45,不知道是怎么回事。 package com.example.maptest; import android.os.Bundle; import com.amap.api.maps.AMap; import com.amap.api.maps.CameraUpdateFactory; import com.amap.api.maps.MapView; import com.amap.api.maps.MapsInitializer; import com.amap.api.maps.model.Marker; import com.amap.api.maps.overlay.DrivingRouteOverlay; import com.amap.api.services.core.LatLonPoint; import com.amap.api.services.route.BusRouteResult; import com.amap.api.services.route.DrivePath; import com.amap.api.services.route.DriveRouteResult; import com.amap.api.services.route.RouteSearch; import com.amap.api.services.route.RouteSearch.DriveRouteQuery; import com.amap.api.services.route.RouteSearch.OnRouteSearchListener; import com.amap.api.services.route.WalkRouteResult; import android.app.Activity; import android.view.Menu; import android.widget.Toast; public class MainActivity extends Activity implements OnRouteSearchListener{ private AMap aMap; private MapView mapView; private int drivingMode = RouteSearch.DrivingDefault; private DriveRouteResult driveRouteResult; private LatLonPoint startPoint; private LatLonPoint endPoint; private RouteSearch routeSearch; private Marker startMk, targetMk; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // MapsInitializer.sdcardDir = OffLineMapUtils.getSdCacheDir(this); mapView = (MapView) findViewById(R.id.map); mapView.onCreate(savedInstanceState);// 此方法必须重写 routeSearch = new RouteSearch(this); routeSearch.setRouteSearchListener(this); init(); startPoint = new LatLonPoint(114.2001098435, 22.9537733103); endPoint = new LatLonPoint(23.0231558804, 114.6609545055); searchRouteResult(startPoint, endPoint); } private void init() { if (aMap == null) { aMap = mapView.getMap(); } // 设置地图可视缩放大小 // aMap.moveCamera(CameraUpdateFactory.zoomTo(12)); } @Override protected void onResume() { super.onResume(); mapView.onResume(); } /** 095. * 方法必须重写 096. */ @Override protected void onPause() { super.onPause(); mapView.onPause(); } /** 104. * 方法必须重写 105. */ @Override protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); mapView.onSaveInstanceState(outState); } /** 113. * 方法必须重写 114. */ @Override protected void onDestroy() { super.onDestroy(); mapView.onDestroy(); } public void searchRouteResult(LatLonPoint startPoint,LatLonPoint endPoint) { final RouteSearch.FromAndTo fromAndTo = new RouteSearch.FromAndTo(startPoint, endPoint); DriveRouteQuery query = new DriveRouteQuery(fromAndTo, drivingMode, null, null, "");// 第一个参数表示路径规划的起点和终点,第二个参数表示驾车模式,第三个参数表示途经点,第四个参数表示避让区域,第五个参数表示避让道路 routeSearch.calculateDriveRouteAsyn(query); } @Override public void onDriveRouteSearched(DriveRouteResult arg0, int arg1) { System.out.println("----------------"+arg1); Toast.makeText(this, "---"+arg1, Toast.LENGTH_SHORT).show(); if (arg1 == 0) { if (arg0 != null && arg0.getPaths() != null && arg0.getPaths().size() > 0) { driveRouteResult = arg0; DrivePath drivePath = driveRouteResult.getPaths().get(0); aMap.clear();// 清理地图上的所有覆盖物 DrivingRouteOverlay drivingRouteOverlay = new DrivingRouteOverlay( this, aMap, drivePath, driveRouteResult.getStartPos(), driveRouteResult.getTargetPos()); drivingRouteOverlay.removeFromMap(); drivingRouteOverlay.addToMap(); drivingRouteOverlay.zoomToSpan(); } else { // ToastUtil.show(RouteActivity.this, R.string.no_result); Toast.makeText(this, "错误1", Toast.LENGTH_SHORT).show(); } } else if (arg1 == 27) { // ToastUtil.show(RouteActivity.this, R.string.error_network); Toast.makeText(this, "错误2", Toast.LENGTH_SHORT).show(); } else if (arg1 == 32) { // ToastUtil.show(RouteActivity.this, R.string.error_key); Toast.makeText(this, "错误3", Toast.LENGTH_SHORT).show(); } else { // ToastUtil.show(RouteActivity.this, getString(R.string.error_other) // + arg1); Toast.makeText(this, "错误4", Toast.LENGTH_SHORT).show(); } } @Override public void onBusRouteSearched(BusRouteResult arg0, int arg1) { // TODO Auto-generated method stub } @Override public void onWalkRouteSearched(WalkRouteResult arg0, int arg1) { // TODO Auto-generated method stub } }
android开发,模拟登录时的问题,求助大神~~
尝试做一个学校的教务系统android app,模拟登陆过程都没有问题,使用的是asynhttpclient。只是登陆成功后,只会跳转至如图中(2)这个url中,里面content的内容只是是:{success:true,tips:'登录成功',newsms:0,uid:'xxxxxxxxx'},没有其他内容。所以AsyncHttpResponseHandler的onSuccess()方法得到的也只是这个页面的信息,而我想要进一步操作查询成绩或课表则需要跳转到后面(3)这几个URL,不知如何从代码中实现。我想过直接使用(3)中的url,然后传入get(urlString,params,AsyncHttpResponseHandler)方法直接操作,但是如图所示,(3)中每个url后面都有个_dc="xxxxxxxxxxx"这个参数,也就是Query String中的信息,而这个每次都是随机的,所以我也没法取得参数带入到params中,现在举步维艰.....所以求助大神我到这一步应该如何解决![图片说明](https://img-ask.csdn.net/upload/201604/05/1459860325_645981.png) 下面是我的代码: ``` public class LoginActivity extends Activity { private EditText username, password; private Button login; private PersistentCookieStore cookie; private SQLiteDatabase db; private LinkService linkService; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_login); Log.i("tag", "create"); initValue();// 变量初始化 initView();// 视图初始化 initCookie(this);// cookie初始化 initEvent();// 事件初始化 initDatabase();// 数据库初始化 } private void initValue() { linkService = LinkService.getLinkService(); } private void initView() { username = (EditText) findViewById(R.id.username); password = (EditText) findViewById(R.id.password); login = (Button) findViewById(R.id.login); } private void initCookie(Context context) { Log.i("tag", "执行了initCookie"); cookie = new PersistentCookieStore(context); HttpUtil.getClient().setCookieStore(cookie); getCookieText(); } /** * 获取标准 Cookie */ private String getCookieText() { List<Cookie> cookies = cookie.getCookies(); Log.d("getCookieText", "cookies.size() = " + cookies.size()); Utils.setCookies(cookies); StringBuffer sb = new StringBuffer(); for (int i = 0; i < cookies.size(); i++) { Cookie cookie = cookies.get(i); String cookieName = cookie.getName(); String cookieValue = cookie.getValue(); if (!TextUtils.isEmpty(cookieName) && !TextUtils.isEmpty(cookieValue)) { sb.append(cookieName + "="); sb.append(cookieValue + ";"); } } Log.e("getCookieText", sb.toString()); return sb.toString(); } private void initEvent() { login.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { login(); } }); } private void initDatabase() { db = Connector.getDatabase(); } /** * 跳转至主页 */ private void jump2Main() { SharedPreferenceUtil util = new SharedPreferenceUtil(getApplicationContext(), "accountInfo"); util.setKeyData("username", HttpUtil.j_username); util.setKeyData("password", HttpUtil.j_password); util.setKeyData("isLogin", "TRUE"); Intent intent = new Intent(LoginActivity.this, EduMainActivity.class); startActivity(intent); finish(); } private void login() { HttpUtil.j_username = username.getText().toString().trim() + ",undergraduate"; HttpUtil.j_password = password.getText().toString().trim(); if (TextUtils.isEmpty(HttpUtil.j_username) || TextUtils.isEmpty(HttpUtil.j_password)) { Toast.makeText(getApplicationContext(), "账号或密码不可以为空!", Toast.LENGTH_SHORT).show(); return; } final ProgressDialog dialog = CommonUtil.getProcessDialog(LoginActivity.this, "正在登录中!"); dialog.show(); RequestParams params = HttpUtil.getLoginRequestParams();// 获得请求参数 HttpUtil.getClient().setURLEncodingEnabled(true); HttpUtil.post(HttpUtil.URL_LOGIN, params, new AsyncHttpResponseHandler() { @Override public void onSuccess(int arg0, Header[] arg1, byte[] arg2) { try { String resultContent = new String(arg2, "UTF-8"); Log.i("tag", resultContent); if (resultContent.contains("tips:'登录成功'")) { Toast.makeText(getApplicationContext(), "登录成功!!!", Toast.LENGTH_SHORT).show(); getCookieText(); jump2Main(); } else { Toast.makeText(getApplicationContext(), "账号或者密码错误!!!", Toast.LENGTH_SHORT).show(); } } catch (UnsupportedEncodingException e) { e.printStackTrace(); } finally { dialog.dismiss(); } } @Override public void onFailure(int arg0, Header[] arg1, byte[] arg2, Throwable arg3) { Toast.makeText(getApplicationContext(), "登录失败!!!!", Toast.LENGTH_SHORT).show(); dialog.dismiss(); } }); } @Override public void onBackPressed() { Intent intent = new Intent(LoginActivity.this, MainActivity.class); startActivity(intent); overridePendingTransition(android.R.anim.slide_in_left, android.R.anim.slide_out_right); finish(); } } ```
android 判断WiFi连接密码错误的方法
WiFi连接的时候何不知道如判断验证失败的方法,根据网上的资料找到方法接收广播 if (action.equals(WifiManager.SUPPLICANT_STATE_CHANGED_ACTION)) { LogLazy.e("wifi密码错误广播"); int linkWifiResult = intent.getIntExtra(WifiManager.EXTRA_SUPPLICANT_ERROR, 123); if (linkWifiResult == WifiManager.ERROR_AUTHENTICATING) { toast("密码错误"); } } ``` ``` ``` ``` 但是不清楚 intent.getIntExtra(WifiManager.EXTRA_SUPPLICANT_ERROR, 123); 这句话里面的第二个参数是什么意思?,直接拿过来用连接WiFi,验证失败后这个广播也不是每次都收到,不是很清楚要如何准确的收到密码错误的广播?
谁能帮我解释下 这个代码 然后最好能让里面数据显示到listview中去
package com.httppost.main; import java.io.IOException; import java.io.InterruptedIOException; import java.io.UnsupportedEncodingException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.HttpPost; import org.apache.http.conn.ConnectTimeoutException; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.message.BasicNameValuePair; import org.apache.http.params.HttpConnectionParams; import org.apache.http.protocol.HTTP; import org.apache.http.util.EntityUtils; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import android.app.Activity; import android.app.ProgressDialog; import android.content.Context; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.TextView; import android.widget.Toast; public class HttpPostActivity extends Activity { TextView textView; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); //获取main这个页面 Button jsonBtn = (Button) findViewById(R.id.get_array_json); //获取组件 jsonBtn.setOnClickListener(jsonClick); //监听按键 Button listBtn = (Button) findViewById(R.id.get_list_json); listBtn.setOnClickListener(listClick); } //获取单个json封装的数据 OnClickListener jsonClick = new OnClickListener() { //按键事件 @Override public void onClick(View v) { // TODO Auto-generated method stub ProgressDialog proDialog = ProgressDialog.show(v.getContext(), "", "正在获取数据……", true, true); //显示dialong HttpThread jsonThread = new HttpThread(v.getContext(), proDialog); // 创建一个Http线程 String url = "http://birsys.ceshiceshi.com/json_1.php"; //创建URL // url传递参数 String[] key = { "type" }; //传递参数 String[] value = { "0" }; // php页面返回的json键 String[] jsonKey = { "id", "username", "lat", "lon","type" }; //传递相应的参数 jsonThread.setUrl(url); jsonThread.setKey(key); jsonThread.setValue(value); jsonThread.setJsonKey(jsonKey); jsonThread.start(); textView= (TextView)findViewById(R.id.textview); textView.setText(url); } }; //获取带数组类型的封装 OnClickListener listClick = new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub ProgressDialog proDialog = ProgressDialog.show(v.getContext(), "", "正在获取数据……", true, true); HttpThread jsonThread = new HttpThread(v.getContext(), proDialog); String url = "http://birsys.ceshiceshi.com/json_2.php"; // url传递参数 String[] key = { "type" }; String[] value = { "1" }; // php页面返回的json键 String[] jsonKey = { "id", "username", "lat", "lon","type" }; String jsonName="json_2"; //传递相应的参数 jsonThread.setUrl(url); jsonThread.setKey(key); jsonThread.setValue(value); jsonThread.setJsonName(jsonName); jsonThread.setJsonKey(jsonKey); jsonThread.start(); } }; public class Json { // 解析单一的json封装,并返回字符串数组 /** * 参数说明: * 1.webContent 获取的网页封装的json格式数据 * 2.key 以数组形式组成的json的键名称 * */ public String[] getJSON(String webContent, String[] key) { int size = key.length; String[] s = new String[size]; try { JSONObject jsonObject = new JSONObject(webContent); for (int j = 0; j < size; j++) { s[j] = jsonObject.getString(key[j]); System.out.println(key[j] + "===string===" + jsonObject.getString(key[j])); } } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); s = null; } return s; } // 获取数组型的结构,返回ArrayList<HashMap<String, Object>>,方便listview中填充数据 /** * 参数说明: * 1.webContent 获取的网页封装的json格式数据 * 2.key 以数组形式组成的json的键名称 3.jsonName * 封装json数组数据的json名称 * public ArrayList<HashMap<String, Object>> getJSONArray(String webContent, String[] key, String jsonName) { ArrayList<HashMap<String, Object>> list; JSONArray jsonObject; try { jsonObject = new JSONObject(webContent).getJSONArray(jsonName); list = new ArrayList<HashMap<String, Object>>(); for (int i = 0; i < jsonObject.length(); i++) { JSONObject jsonObject2 = (JSONObject) jsonObject.opt(i); HashMap<String, Object> map = new HashMap<String, Object>(); for (int j = 0; j < key.length; j++) { map.put(key[j], jsonObject2.getString(key[j])); System.out.println(key[j] + "===" + jsonObject2.getString(key[j])); } list.add(map); } } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); list = null; } return list; } */ } public class HttpThread extends Thread{ private Context context; private ProgressDialog proDialog; private String url; private String []key; private String []value; private String []jsonKey; private String jsonName; private String []array; ArrayList<HashMap<String, Object>> list; public HttpThread(Context context,ProgressDialog proDialog){ this.context=context; this.proDialog=proDialog; } @Override public void run(){ Message msg = handler.obtainMessage(); HttpPostRequest post=new HttpPostRequest(); int res=post.requestHttp(url, key, value); String webContent=post.getWebContext(); msg.what=res; if(res==1){ //解析json Json json=new Json(); if(jsonName!=null) //解析数组型的json //list=json.getJSONArray(webContent, jsonKey, jsonName); //else //解析单个json值 array=json.getJSON(webContent, jsonKey); } handler.sendMessage(msg); } private Handler handler = new Handler() { // TODO Auto-generated constructor stub @Override public void handleMessage(Message msg) { // TODO Auto-generated method stub super.handleMessage(msg); int what=msg.what; Http_Status_Tips status=new Http_Status_Tips(); //返回成功数据时 if(what==1){ //处理数组型json if(list!=null){ int size=list.size(); String result=""; for(int i=0;i<size;i++){ int s=jsonKey.length; //迭代jsonKey数组值 for(int j=0;j<s;j++){ result+=jsonKey[j]+":"+list.get(i).get(jsonKey[j])+"\n"; } result+="\n"; } Toast.makeText(context, result, Toast.LENGTH_LONG).show(); } //处理单个字符json if(array!=null){ int arraySize=array.length; String rs=""; for(int k=0;k<arraySize;k++){ rs+=jsonKey[k]+":"+array[k]+"\n"; } Toast.makeText(context, rs, Toast.LENGTH_LONG).show(); if(array[0].equals("2")) Toast.makeText(context, array[0], Toast.LENGTH_LONG).show(); } } //根据服务器端返回数据,自定义提示 else if(what==2){ status.setTips("自定义提示2"); }//根据服务器端返回数据,自定义提示 else if(what==3){ status.setTips("自定义提示3"); } status.ShowHttpStatusTips(what, context,proDialog); } }; //activity界面传递的参数 public String getUrl() { return url; } public void setUrl(String url) { this.url = url; } public String[] getKey() { return key; } public void setKey(String[] key) { this.key = key; } public String[] getValue() { return value; } public void setValue(String[] value) { this.value = value; } public String[] getJsonKey() { return jsonKey; } public void setJsonKey(String[] jsonKey) { this.jsonKey = jsonKey; } public String getJsonName() { return jsonName; } public void setJsonName(String jsonName) { this.jsonName = jsonName; } } public class HttpPostRequest { private String webContext; //返回请求内容 public String getWebContext() { return webContext; } public void setWebContext(String webContext) { this.webContext = webContext; } //该函数返回服务器访问的各种状态,并通过webContext传递获取的文本值 /** * 参数说明 * url 访问的网络地址 * key 传递参数的名称 * value 传递参数的值 * key 与value数组长度对应,即一对键值对,这样可以不限制参数传递的个数 * */ public int requestHttp(String url,String []key,String []value) { // TODO Auto-generated method stub int status = 0; DefaultHttpClient mHttpClient = new DefaultHttpClient(); HttpPost mPost = new HttpPost(url); List<BasicNameValuePair> pairs = new ArrayList<BasicNameValuePair>(); int size=key.length; for(int i=0;i<size;i++){ pairs.add(new BasicNameValuePair(key[i], value[i])); } try { mPost.setEntity(new UrlEncodedFormEntity(pairs, HTTP.UTF_8)); } catch (UnsupportedEncodingException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } try { mHttpClient.getParams().setIntParameter(HttpConnectionParams.SO_TIMEOUT, 60000); // Socket超时设置60s mHttpClient.getParams().setIntParameter(HttpConnectionParams.CONNECTION_TIMEOUT, 60000);// 连接超时60s HttpResponse response = mHttpClient.execute(mPost); int res = response.getStatusLine().getStatusCode(); if (res == 200) { HttpEntity entity = response.getEntity(); if (entity != null) { String info = EntityUtils.toString(entity); setWebContext(info); status=1; } } else if (res == 404) { status = 404; } else if (res == 500) { status = 500; } } catch (ClientProtocolException e) { // TODO Auto-generated catch block e.printStackTrace(); status = 900; } catch (ConnectTimeoutException e) { // TODO Auto-generated catch block e.printStackTrace(); status = 901; } catch (InterruptedIOException e) { // TODO Auto-generated catch block e.printStackTrace(); status = 902; } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); status = 903; } return status; } } public class Http_Status_Tips { //服务器端返回的状态提示 public static final String HTTP_0="其他错误"; public static final String HTTP_1=""; public static final String HTTP_404="404错误,请求链接无效"; public static final String HTTP_500="网络500错误,服务器端程序出错"; public static final String HTTP_900="网络传输协议出错"; public static final String HTTP_901="连接超时"; public static final String HTTP_902="网络中断"; public static final String HTTP_903="网络数据流传输出错"; public static final String HTTP_UNKONW="未知的错误"; //自定义的提示 private String tips; public void ShowHttpStatusTips(int status,Context context,ProgressDialog proDialog){ switch(status){ case 0: Toast.makeText(context, getTips(), Toast.LENGTH_LONG).show(); break; case 1: //Toast.makeText(context, getTips(), Toast.LENGTH_LONG).show(); break; case 2: Toast.makeText(context, getTips(), Toast.LENGTH_LONG).show(); break; case 3: Toast.makeText(context, getTips(), Toast.LENGTH_LONG).show(); break; case 404: Toast.makeText(context, HTTP_404, Toast.LENGTH_LONG).show(); break; case 500: Toast.makeText(context, HTTP_500,Toast.LENGTH_LONG).show(); break; case 900: Toast.makeText(context, HTTP_900, Toast.LENGTH_LONG).show(); break; case 901: Toast.makeText(context, HTTP_901, Toast.LENGTH_LONG).show(); break; case 902: Toast.makeText(context, HTTP_902, Toast.LENGTH_LONG).show(); break; case 903: Toast.makeText(context, HTTP_903, Toast.LENGTH_LONG).show(); break; default: Toast.makeText(context, HTTP_UNKONW, Toast.LENGTH_LONG).show(); break; } if(proDialog!=null) proDialog.dismiss(); } public String getTips() { return tips; } public void setTips(String tips) { this.tips = tips; } } }
Android如何实现桌面快捷方式的国际化和自动创建(应用安装时)?
1. 如果是长按应用程序启动图标拖到桌面的快捷方式,那么只要自己配置了国际化的可以自动转换,求系统长按并拖动到到桌面添加快捷方式的代码,或是源码位置? 2. 如果是普通代码创建到桌面的快捷方式,虽然配置了国际化,但是代码创建的快捷方式是不随语言的改变而改变的,因此我通过监听local信息,删除原快捷方式,并创建新的快捷方式,但快捷方式在删除和创建的过程均有Toast提示,查看源码,Toast提示貌似无法屏蔽,如有大神能屏蔽,还请多多指点,多谢! 3. 如有其它解决方案,请指点,我实在是想不出来了。 4. 如何实现安装应用的时候在桌面创建本应用的快捷方式? 5. 监听local创建/删除桌面快捷方式的代码如下 public class MyReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { // TODO Auto-generated method stub Log.e("MyReceiver", "---------onReceive------改语言------"); delShortcut(context); addShortcut(context); } private void addShortcut(Context context) { Intent mIntent = new Intent(Intent.ACTION_CREATE_SHORTCUT); Intent shortcut = new Intent("com.android.launcher.action.INSTALL_SHORTCUT"); MyApp.del = context.getString(R.string.app_name); // 快捷方式的名称 shortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME, context.getString(R.string.app_name)); shortcut.putExtra("duplicate", true); // 不允许重复创建 // 指定当前的Activity为快捷方式启动的对象: 如 com.everest.video.VideoPlayer // 注意: ComponentName的第二个参数必须加上点号(.),否则快捷方式无法启动相应程序 ComponentName comp = new ComponentName(context.getPackageName(), "." + "TestLanguageActivity"); Intent mintent= new Intent(Intent.ACTION_MAIN); mintent.addCategory(Intent.CATEGORY_LAUNCHER); mintent.setComponent(comp); shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT,mintent); // 快捷方式的图标 ShortcutIconResource iconRes = Intent.ShortcutIconResource.fromContext(context, R.drawable.ic_launcher); shortcut.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, iconRes); context.sendBroadcast(shortcut); } private void delShortcut(Context context) { Intent shortcut = new Intent("com.android.launcher.action.UNINSTALL_SHORTCUT"); // 快捷方式的名称 shortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME, MyApp.del); // shortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME, context.getString(R.string.app_name)); // 指定当前的Activity为快捷方式启动的对象: 如 com.everest.video.VideoPlayer // 注意: ComponentName的第二个参数必须是完整的类名(包名+类名),否则无法删除快捷方式 String appClass = context.getPackageName() + "." + "TestLanguageActivity"; ComponentName comp = new ComponentName(context.getPackageName(), appClass); Intent mintent= new Intent(Intent.ACTION_MAIN); mintent.addCategory(Intent.CATEGORY_LAUNCHER); mintent.setComponent(comp); shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, mintent); context.sendBroadcast(shortcut); } }
《奇巧淫技》系列-python!!每天早上八点自动发送天气预报邮件到QQ邮箱
将代码部署服务器,每日早上定时获取到天气数据,并发送到邮箱。 也可以说是一个小人工智障。 思路可以运用在不同地方,主要介绍的是思路。
Linux(服务器编程):15---两种高效的事件处理模式(reactor模式、proactor模式)
前言 同步I/O模型通常用于实现Reactor模式 异步I/O模型则用于实现Proactor模式 最后我们会使用同步I/O方式模拟出Proactor模式 一、Reactor模式 Reactor模式特点 它要求主线程(I/O处理单元)只负责监听文件描述符上是否有事件发生,有的话就立即将时间通知工作线程(逻辑单元)。除此之外,主线程不做任何其他实质性的工作 读写数据,接受新的连接,以及处...
为什么要学数据结构?
一、前言 在可视化化程序设计的今天,借助于集成开发环境可以很快地生成程序,程序设计不再是计算机专业人员的专利。很多人认为,只要掌握几种开发工具就可以成为编程高手,其实,这是一种误解。要想成为一个专业的开发人员,至少需要以下三个条件: 1) 能够熟练地选择和设计各种数据结构和算法 2) 至少要能够熟练地掌握一门程序设计语言 3) 熟知所涉及的相关应用领域的知识 其中,后两个条件比较容易实现,而第一个...
C语言魔塔游戏
很早就很想写这个,今天终于写完了。 游戏截图: 编译环境: VS2017 游戏需要一些图片,如果有想要的或者对游戏有什么看法的可以加我的QQ 2985486630 讨论,如果暂时没有回应,可以在博客下方留言,到时候我会看到。 下面我来介绍一下游戏的主要功能和实现方式 首先是玩家的定义,使用结构体,这个名字是可以自己改变的 struct gamerole { char n
进程通信方式总结与盘点
​ 进程通信是指进程之间的信息交换。这里需要和进程同步做一下区分,进程同步控制多个进程按一定顺序执行,进程通信是一种手段,而进程同步是目标。从某方面来讲,进程通信可以解决进程同步问题。 ​ 首先回顾下我们前面博文中讲到的信号量机制,为了实现进程的互斥与同步,需要在进程间交换一定的信息,因此信号量机制也可以被归为进程通信的一种方式,但是也被称为低级进程通信,主要原因为: 效率低:一次只可操作少量的...
究竟你适不适合买Mac?
我清晰的记得,刚买的macbook pro回到家,开机后第一件事情,就是上了淘宝网,花了500元钱,找了一个上门维修电脑的师傅,上门给我装了一个windows系统。。。。。。 表砍我。。。 当时买mac的初衷,只是想要个固态硬盘的笔记本,用来运行一些复杂的扑克软件。而看了当时所有的SSD笔记本后,最终决定,还是买个好(xiong)看(da)的。 已经有好几个朋友问我mba怎么样了,所以今天尽量客观
听说了吗?阿里双11作战室竟1根网线都没有
双11不光是购物狂欢节,更是对技术的一次“大考”,对于阿里巴巴企业内部运营的基础保障技术而言,亦是如此。 回溯双11历史,这背后也经历过“小米加步枪”的阶段:作战室从随处是网线,交换机放地上的“一地狼藉”;到如今媲美5G的wifi网速,到现场却看不到一根网线;从当年使用商用AP(无线路由器),让光明顶双11当天断网一分钟,到全部使用阿里自研AP……阿里巴巴企业智能事业部工程师们提供的基础保障...
在阿里,40岁的奋斗姿势
在阿里,40岁的奋斗姿势 在阿里,什么样的年纪可以称为老呢?35岁? 在云网络,有这样一群人,他们的平均年龄接近40,却刚刚开辟职业生涯的第二战场。 他们的奋斗姿势是什么样的呢? 洛神赋 “翩若惊鸿,婉若游龙。荣曜秋菊,华茂春松。髣髴兮若轻云之蔽月,飘飖兮若流风之回雪。远而望之,皎若太阳升朝霞;迫而察之,灼若芙蕖出渌波。” 爱洛神,爱阿里云 2018年,阿里云网络产品部门启动洛神2.0升...
关于研发效能提升的思考
研发效能提升是最近比较热门的一个话题,本人根据这几年的工作心得,做了一些思考总结,由于个人深度有限,暂且抛转引入。 三要素 任何生产力的提升都离不开这三个因素:人、流程和工具,少了其中任何一个因素都无法实现。 人,即思想,也就是古人说的“道”,道不同不相为谋,是制高点,也是高层建筑的基石。 流程,即方法,也是古人说的“法”。研发效能的提升,也就是要提高投入产出比,既要增加产出,也要减...
Python爬虫爬取淘宝,京东商品信息
小编是一个理科生,不善长说一些废话。简单介绍下原理然后直接上代码。 使用的工具(Python+pycharm2019.3+selenium+xpath+chromedriver)其中要使用pycharm也可以私聊我selenium是一个框架可以通过pip下载 pip install selenium -i https://pypi.tuna.tsinghua.edu.cn/simple/ 
阿里程序员写了一个新手都写不出的低级bug,被骂惨了。
这种新手都不会范的错,居然被一个工作好几年的小伙子写出来,差点被当场开除了。
Java工作4年来应聘要16K最后没要,细节如下。。。
前奏: 今天2B哥和大家分享一位前几天面试的一位应聘者,工作4年26岁,统招本科。 以下就是他的简历和面试情况。 基本情况: 专业技能: 1、&nbsp;熟悉Sping了解SpringMVC、SpringBoot、Mybatis等框架、了解SpringCloud微服务 2、&nbsp;熟悉常用项目管理工具:SVN、GIT、MAVEN、Jenkins 3、&nbsp;熟悉Nginx、tomca
2020年,冯唐49岁:我给20、30岁IT职场年轻人的建议
点击“技术领导力”关注∆  每天早上8:30推送 作者| Mr.K   编辑| Emma 来源| 技术领导力(ID:jishulingdaoli) 前天的推文《冯唐:职场人35岁以后,方法论比经验重要》,收到了不少读者的反馈,觉得挺受启发。其实,冯唐写了不少关于职场方面的文章,都挺不错的。可惜大家只记住了“春风十里不如你”、“如何避免成为油腻腻的中年人”等不那么正经的文章。 本文整理了冯
程序员该看的几部电影
##1、骇客帝国(1999) 概念:在线/离线,递归,循环,矩阵等 剧情简介: 不久的将来,网络黑客尼奥对这个看似正常的现实世界产生了怀疑。 他结识了黑客崔妮蒂,并见到了黑客组织的首领墨菲斯。 墨菲斯告诉他,现实世界其实是由一个名叫“母体”的计算机人工智能系统控制,人们就像他们饲养的动物,没有自由和思想,而尼奥就是能够拯救人类的救世主。 可是,救赎之路从来都不会一帆风顺,到底哪里才是真实的世界?
入职阿里5年,他如何破解“技术债”?
简介: 作者 | 都铎 作为一名技术人,你常常会听到这样的话: “先快速上线” “没时间改” “再缓一缓吧” “以后再解决” “先用临时方案处理” …… 当你埋下的坑越来越多,不知道哪天哪位同学就会踩上一颗雷。特别赞同“人最大的恐惧就是未知,当技术债可说不可见的时候,才是最让人不想解决的时候。” 作为一个程序员,我们反对复制粘贴,但是我们经常会见到相似的代码,相同的二方包,甚至整个代码...
Python绘图,圣诞树,花,爱心 | Turtle篇
每周每日,分享Python实战代码,入门资料,进阶资料,基础语法,爬虫,数据分析,web网站,机器学习,深度学习等等。 公众号回复【进群】沟通交流吧,QQ扫码进群学习吧 微信群 QQ群 1.画圣诞树 import turtle screen = turtle.Screen() screen.setup(800,600) circle = turtle.Turtle()...
作为一个程序员,CPU的这些硬核知识你必须会!
CPU对每个程序员来说,是个既熟悉又陌生的东西? 如果你只知道CPU是中央处理器的话,那可能对你并没有什么用,那么作为程序员的我们,必须要搞懂的就是CPU这家伙是如何运行的,尤其要搞懂它里面的寄存器是怎么一回事,因为这将让你从底层明白程序的运行机制。 随我一起,来好好认识下CPU这货吧 把CPU掰开来看 对于CPU来说,我们首先就要搞明白它是怎么回事,也就是它的内部构造,当然,CPU那么牛的一个东
破14亿,Python分析我国存在哪些人口危机!
2020年1月17日,国家统计局发布了2019年国民经济报告,报告中指出我国人口突破14亿。 猪哥的朋友圈被14亿人口刷屏,但是很多人并没有看到我国复杂的人口问题:老龄化、男女比例失衡、生育率下降、人口红利下降等。 今天我们就来分析一下我们国家的人口数据吧! 一、背景 1.人口突破14亿 2020年1月17日,国家统计局发布了 2019年国民经济报告 ,报告中指出:年末中国大陆总人口(包括31个
在家远程办公效率低?那你一定要收好这个「在家办公」神器!
相信大家都已经收到国务院延长春节假期的消息,接下来,在家远程办公可能将会持续一段时间。 但是问题来了。远程办公不是人在电脑前就当坐班了,相反,对于沟通效率,文件协作,以及信息安全都有着极高的要求。有着非常多的挑战,比如: 1在异地互相不见面的会议上,如何提高沟通效率? 2文件之间的来往反馈如何做到及时性?如何保证信息安全? 3如何规划安排每天工作,以及如何进行成果验收? ......
作为一个程序员,内存和磁盘的这些事情,你不得不知道啊!!!
截止目前,我已经分享了如下几篇文章: 一个程序在计算机中是如何运行的?超级干货!!! 作为一个程序员,CPU的这些硬核知识你必须会! 作为一个程序员,内存的这些硬核知识你必须懂! 这些知识可以说是我们之前都不太重视的基础知识,可能大家在上大学的时候都学习过了,但是嘞,当时由于老师讲解的没那么有趣,又加上这些知识本身就比较枯燥,所以嘞,大家当初几乎等于没学。 再说啦,学习这些,也看不出来有什么用啊!
2020年的1月,我辞掉了我的第一份工作
其实,这篇文章,我应该早点写的,毕竟现在已经2月份了。不过一些其它原因,或者是我的惰性、还有一些迷茫的念头,让自己迟迟没有试着写一点东西,记录下,或者说是总结下自己前3年的工作上的经历、学习的过程。 我自己知道的,在写自己的博客方面,我的文笔很一般,非技术类的文章不想去写;另外我又是一个还比较热衷于技术的人,而平常复杂一点的东西,如果想写文章写的清楚点,是需要足够...
别低估自己的直觉,也别高估自己的智商
所有群全部吵翻天,朋友圈全部沦陷,公众号疯狂转发。这两周没怎么发原创,只发新闻,可能有人注意到了。我不是懒,是文章写了却没发,因为大家的关注力始终在这次的疫情上面,发了也没人看。当然,我...
Java坑人面试题系列: 包装类(中级难度)
Java Magazine上面有一个专门坑人的面试题系列: https://blogs.oracle.com/javamagazine/quiz-2。 这些问题的设计宗旨,主要是测试面试者对Java语言的了解程度,而不是为了用弯弯绕绕的手段把面试者搞蒙。 如果你看过往期的问题,就会发现每一个都不简单。 这些试题模拟了认证考试中的一些难题。 而 “中级(intermediate)” 和 “高级(ad
深度学习入门笔记(十八):卷积神经网络(一)
欢迎关注WX公众号:【程序员管小亮】 专栏——深度学习入门笔记 声明 1)该文章整理自网上的大牛和机器学习专家无私奉献的资料,具体引用的资料请看参考文献。 2)本文仅供学术交流,非商用。所以每一部分具体的参考资料并没有详细对应。如果某部分不小心侵犯了大家的利益,还望海涵,并联系博主删除。 3)博主才疏学浅,文中如有不当之处,请各位指出,共同进步,谢谢。 4)此属于第一版本,若有错误,还需继续修正与...
这个世界上人真的分三六九等,你信吗?
偶然间,在知乎上看到一个问题 一时间,勾起了我深深的回忆。 以前在厂里打过两次工,做过家教,干过辅导班,做过中介。零下几度的晚上,贴过广告,满脸、满手地长冻疮。 再回首那段岁月,虽然苦,但让我学会了坚持和忍耐。让我明白了,在这个世界上,无论环境多么的恶劣,只要心存希望,星星之火,亦可燎原。 下文是原回答,希望能对你能有所启发。 如果我说,这个世界上人真的分三六九等,...
节后首个工作日,企业们集体开晨会让钉钉挂了
By 超神经场景描述:昨天 2 月 3 日,是大部分城市号召远程工作的第一天,全国有接近 2 亿人在家开始远程办公,钉钉上也有超过 1000 万家企业活跃起来。关键词:十一出行 人脸...
Java基础知识点梳理
Java基础知识点梳理 摘要: 虽然已经在实际工作中经常与java打交道,但是一直没系统地对java这门语言进行梳理和总结,掌握的知识也比较零散。恰好利用这段时间重新认识下java,并对一些常见的语法和知识点做个总结与回顾,一方面为了加深印象,方便后面查阅,一方面为了学好java打下基础。 Java简介 java语言于1995年正式推出,最开始被命名为Oak语言,由James Gosling(詹姆
2020年全新Java学习路线图,含配套视频,学完即为中级Java程序员!!
新的一年来临,突如其来的疫情打破了平静的生活! 在家的你是否很无聊,如果无聊就来学习吧! 世上只有一种投资只赚不赔,那就是学习!!! 传智播客于2020年升级了Java学习线路图,硬核升级,免费放送! 学完你就是中级程序员,能更快一步找到工作! 一、Java基础 JavaSE基础是Java中级程序员的起点,是帮助你从小白到懂得编程的必经之路。 在Java基础板块中有6个子模块的学
B 站上有哪些很好的学习资源?
哇说起B站,在小九眼里就是宝藏般的存在,放年假宅在家时一天刷6、7个小时不在话下,更别提今年的跨年晚会,我简直是跪着看完的!! 最早大家聚在在B站是为了追番,再后来我在上面刷欧美新歌和漂亮小姐姐的舞蹈视频,最近两年我和周围的朋友们已经把B站当作学习教室了,而且学习成本还免费,真是个励志的好平台ヽ(.◕ฺˇд ˇ◕ฺ;)ノ 下面我们就来盘点一下B站上优质的学习资源: 综合类 Oeasy: 综合
你也能看懂的:蒙特卡罗方法
蒙特卡罗方法,也称统计模拟方法,是1940年代中期由于科学技术的发展和电子计算机的发明,而提出的一种以概率统计理论为指导的数值计算方法。是指使用随机数(或更常见的伪随机数)来解决很多计算问题的方法 蒙特卡罗方法可以粗略地分成两类:一类是所求解的问题本身具有内在的随机性,借助计算机的运算能力可以直接模拟这种随机的过程。另一种类型是所求解问题可以转化为某种随机分布的特征数,比如随机事件出现的概率,或...
相关热词 c# 压缩图片好麻烦 c#计算数组中的平均值 c#获取路由参数 c#日期精确到分钟 c#自定义异常必须继承 c#查表并返回值 c# 动态 表达式树 c# 监控方法耗时 c# listbox c#chart显示滚动条
立即提问