Android开发中xml文件中调用java的类是什么原理?

在学习《第一行代码 Android》的碎片部分,看到书上说需要在标签中显式指明要添加的碎片类名。而这个类的定义是:

public class RightFragment extends Fragment
{
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){
    View view = inflater.inflate(R.layout.right_fragment, container, false);
    return view;
    }
}

指明碎片类名有什么作用呢?它的低层原理是什么?

3个回答

https://www.jianshu.com/p/c92243287793

第一个参数:想要添加的布局
第二个参数:想要添加到哪个布局上面
(null和有值的区别 null时第一个参数中最外层的布局大小无效,有值的时候最外层的布局大小有效)
第三个参数:是否直接添加到第二个参数布局上面
(true代表layout文件填充的View会被直接添加进parent,而传入false则代表创建的View会以其他方式被添加进parent

正常你创建一个MainActivity就有一个activity_main.xml(这个就是你看到的页面),fragment主要就是灵活,相当于在一个view中在添加一个view或者几个。指明碎片类名是告诉我们要加载哪一个view,你不告诉他,程序咋知道加载那个页面。你初学的话太底层看了也不会太明白的。

xml最终会解析成java对象的,不然你xml的TextView怎么变成代码的TextView呢,原理新手就不用多想。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
android 中 如何通过java代码调用style样式
平时做开发,通常style样式直接在xml布局文件中直接调用,如果我想直接在java代码中通过动态加载来设置,是否可以?通过查阅资料,很多说不可以,解决方式是把style中的逐条信息加载设置,还有其他途径可以设置吗?
android 如何在java代码中方便的调用xml写的布局??
我想在activity刷新的时候重新生成一些xml写的布局,并放在 “求学”那一栏下: ![图片说明](https://img-ask.csdn.net/upload/201603/25/1458837433_577900.png) 想问一下有没有什么方便的方法???
安卓调用百度地图sdk,可是返回坐标值一直是4.9E-324
我发现手机端使用正常,就是在使用夜神模拟器的时候出现的这样的问题。 打开夜神模拟器设置,发现我的软件有这个位置权限(手机端申请了动态权限) 但就是返回4.9E-324,location.getLocType()的返回值是167.我看文档说是没有获取到位置权限。 我现在就有一点迷惑了,动态的也申请了,也在AndroidManifest里面写了权限。 真心不知道这个bug咋解决。 以下是我mainactivity里面所有的代码: ``` package com.example.ppgo; import android.Manifest; import android.content.pm.PackageManager; import android.os.Bundle; import android.util.Log; import android.widget.TextView; 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 java.util.ArrayList; import java.util.List; import androidx.annotation.NonNull; import androidx.appcompat.app.AppCompatActivity; import androidx.core.app.ActivityCompat; import androidx.core.content.ContextCompat; public class MainActivity extends AppCompatActivity { public LocationClient mLocationClient; private TextView positionText; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mLocationClient=new LocationClient(getApplicationContext()); mLocationClient.registerLocationListener(new MyLocationListener()); setContentView(R.layout.activity_main); positionText=(TextView)findViewById(R.id.position_text_view); List<String> permissionList=new ArrayList<>(); if(ContextCompat.checkSelfPermission(MainActivity.this, Manifest. permission.ACCESS_FINE_LOCATION)!=PackageManager.PERMISSION_GRANTED){ permissionList.add(Manifest.permission.ACCESS_FINE_LOCATION); } if(ContextCompat.checkSelfPermission(MainActivity.this, Manifest. permission.READ_PHONE_STATE)!=PackageManager.PERMISSION_GRANTED){ permissionList.add(Manifest.permission.READ_PHONE_STATE); } if(ContextCompat.checkSelfPermission(MainActivity.this, Manifest. permission.WRITE_EXTERNAL_STORAGE)!=PackageManager.PERMISSION_GRANTED){ permissionList.add(Manifest.permission.WRITE_EXTERNAL_STORAGE); } if(!permissionList.isEmpty()){ String[]permissions=permissionList.toArray(new String[permissionList.size()]); ActivityCompat.requestPermissions(MainActivity.this,permissions,1); }else { requestLocation(); } } private void requestLocation(){ initLocation(); mLocationClient.start(); } private void initLocation(){ LocationClientOption option =new LocationClientOption(); option.setScanSpan(5000); mLocationClient.setLocOption(option); } @Override protected void onDestroy() { super.onDestroy(); mLocationClient.stop(); } @Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { super.onRequestPermissionsResult(requestCode, permissions, grantResults); Log.e("Tag","执行了onRequestPermissionsResult函数"); switch (requestCode){ case 1: if (grantResults.length>0){ for(int result:grantResults){ if(result!=PackageManager.PERMISSION_GRANTED){ Toast.makeText(this,"必须同意所有权限才能使用本程序", Toast.LENGTH_SHORT).show(); finish(); return; } } requestLocation(); }else { Toast.makeText(this,"发生未知错误",Toast.LENGTH_SHORT).show(); finish(); } break; default: } } public class MyLocationListener implements BDLocationListener { @Override public void onReceiveLocation(BDLocation location){ StringBuilder currentPosition=new StringBuilder(); currentPosition.append("纬度:").append(location.getLatitude()).append("\n"); currentPosition.append("经线:").append(location.getLongitude()).append("\n"); currentPosition.append("国家:").append(location.getCountry()).append("\n"); currentPosition.append("省:").append(location.getProvince()).append("\n"); currentPosition.append("市:").append(location.getCity()).append("\n"); currentPosition.append("区:").append(location.getDistrict()).append("\n"); currentPosition.append("街道:").append(location.getStreet()).append("\n"); currentPosition.append("定位方式:"); if (location.getLocType() == BDLocation.TypeGpsLocation) { currentPosition.append("GPS"); } else if (location.getLocType() == BDLocation.TypeNetWorkLocation) { currentPosition.append("网络"); currentPosition.append(" 错误代码:"+location.getLocType()); } else if (location.getLocType() == BDLocation.TypeOffLineLocation){ currentPosition.append("离线定位成功,离线定位结果也是有效的"); } else if (location.getLocType() == BDLocation.TypeServerError){ currentPosition.append("服务端网络定位失败"); currentPosition.append(" 错误代码:"+location.getLocType()); } else if (location.getLocType() == BDLocation.TypeNetWorkException){ currentPosition.append("网络不同导致定位失败,请检查网络是否通畅"); } else if (location.getLocType() == BDLocation.TypeCriteriaException){ currentPosition.append("无法获取有效定位依据导致定位失败"); currentPosition.append(" 错误代码:"+location.getLocType()); } else { currentPosition.append(location.getLocType()); //这里打印出来location.getLocType()是162 currentPosition.append("老子也不知道是啥原因!!!"); } positionText.setText(currentPosition); } } } ``` 以下是我AndroidManifest里面的代码: ``` <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.ppgo"> <!-- 这个权限用于进行网络定位 --> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <!-- 这个权限用于访问GPS定位 --> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <!-- 用于访问wifi网络信息,wifi信息会用于进行网络定位 --> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <!-- 获取网络状态,根据网络状态切换进行数据请求网络转换 --> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <!-- 写外置存储。如果开发者使用了离线地图,并且数据写在外置存储区域,则需要申请该权限 --> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <!-- 读取外置存储。如果开发者使用了so动态加载功能并且把so文件放在了外置存储区域,则需要申请该权限,否则不需要 --> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <!-- 访问网络,进行地图相关业务数据请求,包括地图数据,路线规划,POI检索等 --> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" /> <uses-permission android:name="android.permission.WAKE_LOCK" /> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <meta-data android:name="com.baidu.lbsapi.API_KEY" android:value="mvxMsdG1homIlK4UjAWYP2itjxo09Dyy" /> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <service android:name="com.baidu.location.f" android:enabled="true" android:process=":remote" /> </application> </manifest> ```
Android中调用一个小的计时程序?
这个程序有对应的Timer_layout.xml,这个布局文件以include的方式放在另外一个xml文件中, 现在想在MainActivity中调用Timer.java中的按钮计时方法,请问怎么调用呀? ``` public class Timer extends Activity implements View.OnClickListener{ <声明部分> protected void onCreate(Bundle savedInstanceState) { ... } public void onClick(View view){ switch(view.getID()) { ... } } } ```
从android外部文件中获取web服务的 uri?
我开发一个 android 应用程序调用rest web服务,解析结果到 Json 对象。我想在一个单独的文件中保存 web 服务的 URI,所以我在 strings.xml 文件中添加了基础的 uri: <string name="BaseRestURL">http://192.168.1.2:8080/SensorRestService/webresources/</string> 在 java 代码中使用 url: String read = parse.readFeed(R.string.BaseRestURL+"com.rest.entities.user"); 这段代码的问题是 "R.string.BaseRestURL" 显示一个 int code,不是真的string值。所以,我使用这段代码还是不能访问资源。
Android中的onConfigurationChanged方法不能被调用
在Android程序设置中,当转化屏幕方向时,系统告知不能调用onCreate()方法。 我在manifest上添加android:configChanges="orientation"后,转化屏幕方向还是不能调用onCreate()。 AndroidManifest.xml <activity android:name="SearchMenuActivity" android:theme="@android:style/Theme.NoTitleBar" android:configChanges="orientation"></activity> SearchMenuActivity.java public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.search_menu_activity); Log.d(TAG, "onCreate() Called"); } @Override public void onConfigurationChanged(Configuration newConfig) { Log.d(TAG, "onConfigurationChanged() Called"); super.onConfigurationChanged(newConfig); } LogCat Output 10-19 12:33:20.327: DEBUG/APP(2905): onCreate() Called //转化屏幕方向 10-19 12:33:23.842: DEBUG/APP(2905): onCreate() Called 请求大家帮忙指点出错的地方。谢谢!
在android中如何开启第二个activity
程序中有两个java文件。在第一个文件中当应用程序开始时,activity也开始运行。想让第二个文件调用AuswahlActivity.java和xml文件auswahl.xml。在AuswahlActivity.java里面用这段代码: public class AuswahlActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { setContentView(R.layout.auswahl); //Your code here } } 现在这样开启第二个activity: Intent myIntent = new Intent(this, AuswahlActivity.class); this.startActivity(myIntent); 但是出现错误提示: The constructor Intent(new View.OnClickListener(){}, Class<AuswahlActivity>) is undefined
调用 getStringArray 后 android 程序崩溃
程序出现了下面的错误,在 emulator中奔溃了。现在还不确定什么问题。 Logcat: E/AndroidRuntime( 1928): FATAL EXCEPTION: main E/AndroidRuntime( 1928): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.packtpub.kitchendroid/com.packtpub.kitchendroid.QuestionActivity}: android.content.res.Resources$NotFoundException: String array resource ID #0x0 Java-CODE: package com.packtpub.kitchendroid; import android.app.Activity; import android.os.Bundle; import android.content.res.Resources; import android.widget.Button; import android.widget.TextView; import android.view.ViewGroup; public class QuestionActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); initQuestionScreen(); } private Button[] buttons; private static int getQuestionID(final Resources res, final int index) { final String[] questions = res.getStringArray(R.array.questions); return res.getIdentifier(questions[index], "array", "com.packpub.kitchenroid"); } private int getQuestionIndex() { return getIntent().getIntExtra("KitchenDroid.Question", 0); } private void initQuestionScreen() { TextView question = (TextView)findViewById(R.id.question); ViewGroup answers = (ViewGroup)findViewById(R.id.answers); Resources resources = getResources(); int questionID = getQuestionID(resources, getQuestionIndex()); //Crashes after below line of code String[] quesionData = resources.getStringArray(questionID); // question.setText(quesionData[0]); // int answerCount = quesionData.length - 1; // buttons = new Button[answerCount]; // for(int i = 0; i < answerCount; i++) { // String answer = quesionData[i + 1]; // Button button = new Button(this); // button.setText(answer); // answers.addView(button); // buttons[i] = button; // } } } strings.xml: <?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">QuestionActivity</string> <string-array name="questions"> <item>vegetarian</item> <item>size</item> </string-array> <string-array name="vegetarian"> <item>Are you a Vegetarian?</item> <item>Yes</item> <item>No</item> <item>I\'m a vegan</item> </string-array> <string-array name="size"> <item>How much do you feel like eating?</item> <item>A large meal</item> <item>Just a nice single serving of food</item> <item>Some finger foods</item> <item>Just a snack</item> </string-array> </resources> main.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="wrap_content" > <TextView android:id="@+id/question" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Please wait..." /> <LinearLayout android:id="@+id/answers" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="wrap_content" > <Button android:id="@+id/yes" android:text="Yes!" android:layout_width="fill_parent" android:layout_height="wrap_content" /> <Button android:id="@+id/no" android:text="No!" android:layout_width="fill_parent" android:layout_height="wrap_content" /> <Button android:id="@+id/maybe" android:text="Maybe?" android:layout_width="fill_parent" android:layout_height="wrap_content" /> </LinearLayout> <Button android:id="@+id/skip" android:layout_marginTop="12sp" android:text="Skip Question" android:layout_width="fill_parent" android:layout_height="wrap_content" /> <Button android:id="@+id/view" android:layout_marginTop="12sp" android:text="Feed Me!" android:layout_width="fill_parent" android:layout_height="wrap_content" /> </LinearLayout> package com.packtpub.kitchendroid; public final class R { public static final class array { public static final int questions=0x7f050000; public static final int size=0x7f050002; public static final int vegetarian=0x7f050001; } public static final class attr { } public static final class dimen { public static final int half_width=0x7f030000; } public static final class id { public static final int answers=0x7f060001; public static final int maybe=0x7f060004; public static final int no=0x7f060003; public static final int question=0x7f060000; public static final int skip=0x7f060005; public static final int view=0x7f060006; public static final int yes=0x7f060002; } public static final class layout { public static final int main=0x7f020000; } public static final class string { public static final int app_name=0x7f040000; } }
Android上利用JNI调用OpenCV函数时出现Fatal signal 11错误
我想在Android上用OpenCV实现人脸识别功能,即事先有一个我提供的人脸训练库,然后检测出人脸后,识别他和训练库中的哪类人最像。 我已在windows平台实现了该功能,并将训练好的FaceRecognizer通过save的方式存储成了xml。我将xml文件放入了Android手机某目录下,然后想利用JNI的方式在Android app中使用OpenCV载入该数据库,但运行到这一行就会报错: Fatal Signal 11 (SIGSEGV) at 0x42ff0000 (code=2), thread 8703... 这是我的相关代码: JNIEXPORT jlong JNICALL Java_org_opencv_samples_facedetect_DetectionBasedTracker_nativeCreateObject (JNIEnv * jenv, jclass, jstring jFileName, jint faceSize) { //解析文件目录 const char* jnamestr = jenv->GetStringUTFChars(jFileName, NULL); string stdFileName(jnamestr); ​FaceRecognizer *model = (FaceRecognizer*)createEigenFaceRecognizer(100,10000.0); try { model->load(stdFileName); } ​ 望朋友们出谋划策!十分感谢!
用inflater.inflate调用界面布局文件的时候,没办法找到我的布局的iD
用inflater.inflate调用界面布局文件的时候,没办法找到我的布局的iD如图,我在layout下面有一个fragment_main的xml文件,当时怎么会提示我出错呢?![图片](https://img-ask.csdn.net/upload/201605/16/1463405281_987804.jpg)
Android使用ksoap调用webservice接口
请求服务器一直报错:org.xmlpull.v1.XmlPullParserException: Unexpected token (position:TEXT Error 404: SRVE0...@2:1 in java.io.InputStreamReader@2ad29a7a) 问了外地接口开发人员,然后给我看了他们java端的调用方式,我看在入参xml中设置了编码格式为GBK,于是我按这样的方式设置了编码格式。 ![图片说明](https://img-ask.csdn.net/upload/201711/01/1509522139_987222.png) 错误依旧,请熟悉ksoap或者了解安卓端请求webservice接口的朋友帮下忙,十分感谢!
Android调用system/framework jar NoClassDefFoundError
01-04 10:54:31.118 I/art ( 5344): Rejecting re-init on previously-failed class java.lang.Class<org.simalliance.openmobileapi.service.SmartcardService$6> 01-04 10:54:31.118 I/art ( 5344): Rejecting re-init on previously-failed class java.lang.Class<org.simalliance.openmobileapi.service.SmartcardService$6> 01-04 10:54:31.118 I/OpenGLRenderer( 5317): Initialized EGL, version 1.4 01-04 10:54:31.128 I/art ( 5344): Rejecting re-init on previously-failed class java.lang.Class<org.simalliance.openmobileapi.service.SmartcardService$7> 01-04 10:54:31.128 D/AndroidRuntime( 5344): Shutting down VM 01-04 10:54:31.128 E/AndroidRuntime( 5344): FATAL EXCEPTION: main 01-04 10:54:31.128 E/AndroidRuntime( 5344): Process: org.simalliance.openmobileapi.service:remote, PID: 5344 01-04 10:54:31.128 E/AndroidRuntime( 5344): java.lang.NoClassDefFoundError: org.simalliance.openmobileapi.service.SmartcardService$7 01-04 10:54:31.128 E/AndroidRuntime( 5344): at org.simalliance.openmobileapi.service.SmartcardService.<init>(SmartcardService.java:1201) 01-04 10:54:31.128 E/AndroidRuntime( 5344): at java.lang.reflect.Constructor.newInstance(Native Method) 01-04 10:54:31.128 E/AndroidRuntime( 5344): at java.lang.Class.newInstance(Class.java:1606) 以上是报错的log,在调用的工程的Manifest中已经加了调用的路劲,在system/etc/permissions下也加了相应的xml,试过很多方法都还是同样报错,实在不知道是哪里的问题,求大神帮忙,很急。。。
Android 写事件监听 真机调试出现闪退(我是新手,刚学Android,求大神指教)
这是我的程序: ImageView imageView = (ImageView) findViewById(R.id.login_image); imageView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { } }); 这是错误日志: 03-08 18:10:43.557 9816-9816/com.example.administrator.happyread E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.administrator.happyread, PID: 9816 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.administrator.happyread/com.example.administrator.happyread.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.ImageView.setOnClickListener(android.view.View$OnClickListener)' on a null object reference at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2450) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512) at android.app.ActivityThread.access$1200(ActivityThread.java:165) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1373) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5593) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:967) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:762) Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.ImageView.setOnClickListener(android.view.View$OnClickListener)' on a null object reference at com.example.administrator.happyread.MainActivity.onCreate(MainActivity.java:54) at android.app.Activity.performCreate(Activity.java:6102) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2403) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512)  at android.app.ActivityThread.access$1200(ActivityThread.java:165)  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1373)  at android.os.Handler.dispatchMessage(Handler.java:102)  at android.os.Looper.loop(Looper.java:135)  at android.app.ActivityThread.main(ActivityThread.java:5593)  at java.lang.reflect.Method.invoke(Native Method)  at java.lang.reflect.Method.invoke(Method.java:372)  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:967)  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:762)  03-08 18:10:43.877 9816-9816/com.example.administrator.happyread I/Process: Sending signal. PID: 9816 SIG: 9 这是我调用的xml: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="@dimen/nav_header_height" android:background="@mipmap/k8" android:gravity="bottom" android:orientation="horizontal" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:theme="@style/ThemeOverlay.AppCompat.Dark"> <ImageView android:id="@+id/login_image" android:layout_width="60dp" android:layout_height="60dp" android:layout_marginBottom="5dp" android:paddingTop="@dimen/nav_header_vertical_spacing" android:src="@mipmap/p9" /> <Button android:id="@+id/login_button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="#00000000" android:text="立即登录" android:layout_alignBottom="@+id/login_image" android:layout_toRightOf="@+id/login_image" android:layout_toEndOf="@+id/login_image" /> </RelativeLayout>
APP在MIUI上运行,切换字体大小后没有调用onConfigurationChanged。
## 问题描述 需求是要保证APP的文字大小不受系统文字大小设置的影响。 我在搜索了相关问题之后,采用了重写getResource方法和onConfigurationChanged方法,同时在manifest文件中给activity进行配置的办法来解决这个问题。正常打开APP没有任何问题,字号确实不会随着系统设置而变化。 ([Android 兼容8.0 App全局字体调节、禁止App字体随系统字体大小而更改](https://blog.csdn.net/weitao_666/article/details/79745806 "") ) 但是这样做,在华为平板(揽阅M2青春版,Android 5.1.1,EMUI 3.1)上没有问题,在小米手机(米6,Android 8.0,MIUI 10.3稳定版)上,**切换了字号之后回到APP,APP会自尽(不是闪退,下面会说)**。 ## 代码展示 ### AndroidManifest.xml ``` <!-- 主界面 --> <activity android:name=".ui.MainActivity" android:configChanges="orientation|screenSize|keyboardHidden|fontScale|locale|layoutDirection|keyboard" android:exported="false" android:launchMode="standard" android:screenOrientation="portrait" android:windowSoftInputMode="stateAlwaysHidden|adjustPan"/> ``` ### BaseActivity.java ``` @Override public void onConfigurationChanged(Configuration newConfig) { LogHelper.customLogging("showControl",this.getClass().getName()+"执行了 onConfigurationChanged"); if (newConfig.fontScale != 1)//非默认值 getResources(); super.onConfigurationChanged(newConfig); } /** * 重写 getResource 方法,防止系统字体影响 */ @Override public Resources getResources() {//禁止app字体大小跟随系统字体大小调节 Resources resources = super.getResources(); if (resources != null && resources.getConfiguration().fontScale != 1.0f) { android.content.res.Configuration configuration = resources.getConfiguration(); configuration.fontScale = 1.0f; resources.updateConfiguration(configuration, resources.getDisplayMetrics()); } return resources; } ``` ## 日志信息 ### 这是我的米6的日志 ![图片说明](https://img-ask.csdn.net/upload/201909/03/1567488232_956169.png) 红线处执行的操作是: 1、APP进入后台;2、更改系统文字大小;3、APP回到前台; 可以看到mainActivity在完成了自己应该做的操作(销毁、创建、展示)后多做了一次销毁操作。而且onConfigurationChanged方法中的日志也没有被打印。 所以米6走的路径是相当于ManiFest文件中没有配置fontScale。 ### 这是华为平板的日志 ![图片说明](https://img-ask.csdn.net/upload/201909/03/1567489206_756279.png) 红线处操作同上 这里就执行了onConfigurationChanged方法,只需要重新显示一下activity就可以了。 ## 自己的分析 多了一个onDestroy,导致了APP还活着(AndroidStudio的Logcat一栏显示的包名后面没有DEAD字样),但是Activity已经没了,所以显示的是桌面,看起来是闪退一样,但其实只是他自尽了…… #**各位大神,救救孩子,这个问题怎么解决啊?!**
如何解决Android studio内存不够用的问题?(我放了2张静态图和一张gif图,代码都没错)
(怎么释放android的内存,如何让Bitmap调用recycle()。。。) 08-27 01:51:37.454 18923-18923/com.haoming.hm_xzt.app E/art﹕ Throwing OutOfMemoryError "Failed to allocate a 582912 byte allocation with 75624 free bytes and 73KB until OOM" 08-27 01:51:37.543 18923-18923/com.haoming.hm_xzt.app E/art﹕ Throwing OutOfMemoryError "Failed to allocate a 582912 byte allocation with 75624 free bytes and 73KB until OOM" 08-27 01:51:37.595 18923-18923/com.haoming.hm_xzt.app E/AndroidRuntime﹕ FATAL EXCEPTION: main Process: com.haoming.hm_xzt.app, PID: 18923 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.haoming.hm_xzt.app/com.haoming.hm_xzt.app.LoginActivity}: android.view.InflateException: Binary XML file line #137: Error inflating class <unknown> at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2390) at android.app.ActivityThread.access$800(ActivityThread.java:151) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5257) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) Caused by: android.view.InflateException: Binary XML file line #137: Error inflating class <unknown> at android.view.LayoutInflater.createView(LayoutInflater.java:633) at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:55) at android.view.LayoutInflater.onCreateView(LayoutInflater.java:682) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:741) at android.view.LayoutInflater.rInflate(LayoutInflater.java:806) at android.view.LayoutInflater.rInflate(LayoutInflater.java:809) at android.view.LayoutInflater.inflate(LayoutInflater.java:504) at android.view.LayoutInflater.inflate(LayoutInflater.java:414) at android.view.LayoutInflater.inflate(LayoutInflater.java:365) at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:378) at android.app.Activity.setContentView(Activity.java:2145) at com.haoming.hm_xzt.app.LoginActivity.onCreate(LoginActivity.java:21) at android.app.Activity.performCreate(Activity.java:5990) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278)             at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2390)             at android.app.ActivityThread.access$800(ActivityThread.java:151)             at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)             at android.os.Handler.dispatchMessage(Handler.java:102)             at android.os.Looper.loop(Looper.java:135)             at android.app.ActivityThread.main(ActivityThread.java:5257)             at java.lang.reflect.Method.invoke(Native Method)             at java.lang.reflect.Method.invoke(Method.java:372)             at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)             at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) Caused by: java.lang.reflect.InvocationTargetException at java.lang.reflect.Constructor.newInstance(Native Method) at java.lang.reflect.Constructor.newInstance(Constructor.java:288) at android.view.LayoutInflater.createView(LayoutInflater.java:607)             at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:55)             at android.view.LayoutInflater.onCreateView(LayoutInflater.java:682)             at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:741)             at android.view.LayoutInflater.rInflate(LayoutInflater.java:806)             at android.view.LayoutInflater.rInflate(LayoutInflater.java:809)             at android.view.LayoutInflater.inflate(LayoutInflater.java:504)             at android.view.LayoutInflater.inflate(LayoutInflater.java:414)             at android.view.LayoutInflater.inflate(LayoutInflater.java:365)             at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:378)             at android.app.Activity.setContentView(Activity.java:2145)             at com.haoming.hm_xzt.app.LoginActivity.onCreate(LoginActivity.java:21)             at android.app.Activity.performCreate(Activity.java:5990)             at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)             at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278)             at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2390)             at android.app.ActivityThread.access$800(ActivityThread.java:151)             at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)             at android.os.Handler.dispatchMessage(Handler.java:102)             at android.os.Looper.loop(Looper.java:135)             at android.app.ActivityThread.main(ActivityThread.java:5257)             at java.lang.reflect.Method.invoke(Native Method)             at java.lang.reflect.Method.invoke(Method.java:372)             at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)             at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) Caused by: java.lang.OutOfMemoryError: Failed to allocate a 582912 byte allocation with 75624 free bytes and 73KB until OOM at dalvik.system.VMRuntime.newNonMovableArray(Native Method) at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method) at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:609) at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:444) at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:988) at android.content.res.Resources.loadDrawableForCookie(Resources.java:2474) at android.content.res.Resources.loadDrawable(Resources.java:2381) at android.content.res.TypedArray.getDrawable(TypedArray.java:749) at android.view.View.<init>(View.java:3737) at android.widget.ImageView.<init>(ImageView.java:139) at android.widget.ImageView.<init>(ImageView.java:135) at android.widget.ImageView.<init>(ImageView.java:131)             at java.lang.reflect.Constructor.newInstance(Native Method)             at java.lang.reflect.Constructor.newInstance(Constructor.java:288)             at android.view.LayoutInflater.createView(LayoutInflater.java:607)             at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:55)             at android.view.LayoutInflater.onCreateView(LayoutInflater.java:682)             at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:741)             at android.view.LayoutInflater.rInflate(LayoutInflater.java:806)             at android.view.LayoutInflater.rInflate(LayoutInflater.java:809)             at android.view.LayoutInflater.inflate(LayoutInflater.java:504)             at android.view.LayoutInflater.inflate(LayoutInflater.java:414)             at android.view.LayoutInflater.inflate(LayoutInflater.java:365)             at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:378)             at android.app.Activity.setContentView(Activity.java:2145)             at com.haoming.hm_xzt.app.LoginActivity.onCreate(LoginActivity.java:21)             at android.app.Activity.performCreate(Activity.java:5990)             at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)             at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278)             at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2390)             at android.app.ActivityThread.access$800(ActivityThread.java:151)             at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)             at android.os.Handler.dispatchMessage(Handler.java:102)             at android.os.Looper.loop(Looper.java:135)             at android.app.ActivityThread.main(ActivityThread.java:5257)             at java.lang.reflect.Method.invoke(Native Method)             at java.lang.reflect.Method.invoke(Method.java:372)             at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)             at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
android 调用 webservice 返回字符串想在listview中显示。出现问题……
下文是 主查询模块 Query_xiaofeijilu.java, ``` package com.gongneng.chaxun; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.StringTokenizer; import android.app.Activity; import android.content.Context; import android.os.Bundle; import android.os.Handler; import android.os.Looper; import android.view.View; import android.widget.Button; import android.widget.ListView; import android.widget.SimpleAdapter; import org.json.JSONException; import org.ksoap2.SoapEnvelope; import org.ksoap2.SoapFault; import org.ksoap2.serialization.SoapObject; import org.ksoap2.serialization.SoapSerializationEnvelope; import org.ksoap2.transport.HttpTransportSE; import org.xmlpull.v1.XmlPullParserException; import com.constant.Constant; import com.example.kehuduan.R; public class Query_xiaofeijilu extends Activity { private Button okButton; private ListView listview; private Handler handler = null; private SimpleAdapter adapter; private List<Map<String,Object>> muldata; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.query_xiaofeijilu); okButton = (Button) this.findViewById(R.id.xiaofeijiluchaxun); listview = (ListView) this.findViewById(R.id.listxiaofeijilu); handler = new Handler(); okButton.setOnClickListener(new Button.OnClickListener() { @Override public void onClick(View v) { new Thread() { @Override public void run() { try { try { getWebservice(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (XmlPullParserException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }.start(); } }); } public void getWebservice() throws InterruptedException, IOException, XmlPullParserException, JSONException { // 创建属于主线程的handler HttpTransportSE ht = new HttpTransportSE(Constant.SERVICE_URL); SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); SoapObject request = new SoapObject(Constant.SERVICE_NS,Constant.QueryAction_chaxunxiaofeijilu); request.addProperty("aac999", "2200000"); envelope.bodyOut = request;// 往出走的数据Out,也就是服务器的传入值 try { ht.call(null, envelope); Object object = (Object) envelope.getResponse();// 就用Object来取 muldata = new ArrayList<Map<String,Object>>(); if (envelope.getResponse() != null) { String a = object.toString(); String b = a.replace("[","");//变[为空 String c = b.replace("]",""); String d = c.replace("{",""); String e = d.replace("}",""); String f = e; // String[] arr = c.split(",");//将字符串转为数组,以,为分割 Map<String, Object> aa = transStringToMap(f); Iterator<?> iter = aa.entrySet().iterator(); while (iter.hasNext()) { Map<String,Object> map=new HashMap<String, Object>(); Map.Entry entry = (Map.Entry) iter.next(); Object key = entry.getKey(); Object val = entry.getValue(); map.put(key.toString(),val.toString()); // map.put("text", "测试文本:"); muldata.add(map); } adapter = buildListAdapter(this, muldata); new Thread() { public void run() { handler.post(runnableUi); } }.start(); return; } else { System.out.println("没有返回值"); return; } } catch (SoapFault e) { // TODO Auto-generated catch block e.printStackTrace(); } } // 构建adapter. public SimpleAdapter buildListAdapter(Context context,List<Map<String, Object>> data) { SimpleAdapter adapter = new SimpleAdapter(context, data, R.layout.chaxunxiaofeijilulist, new String[] { "AKB021","AKE038","KS","JS","ROWNUM" }, new int[] { R.id.akb021, R.id.ake038,R.id.ks,R.id.js ,R.id.rownum}); return adapter; } // 构建Runnable对象,在runnable中更新界面 // 更新页面list 需要单独写个线程 Runnable runnableUi = new Runnable() { @Override public void run() { // 更新界面 listview.setAdapter(adapter); Looper.loop(); } }; //=================================== //字符串转MAP public static Map<String, Object> transStringToMap(String mapString){ Map<String, Object> map = new HashMap<String, Object>(); java.util.StringTokenizer items; for(StringTokenizer entrys = new StringTokenizer(mapString, ","); entrys.hasMoreTokens(); map.put(items.nextToken(), items.hasMoreTokens() ? ((Object) (items.nextToken())).toString() : null)) items = new StringTokenizer(entrys.nextToken(), ":"); return map; } } ``` 下文是list页面 ``` <?xml version="1.0" encoding="UTF-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/child" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="horizontal" > <!-- 若想隐藏id加入此属性: android:visibility="gone",这样做有点类似于Html中hidden域 android:background="#E3D25E" --> <TextView android:id="@+id/akb021" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="#6633FF" android:text=" akb021 " /> <TextView android:id="@+id/ake038" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text=" ake038 "/> <TextView android:id="@+id/ks" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text=" ks "/> <TextView android:id="@+id/js" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text=" js "/> <TextView android:id="@+id/rownum" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text=" rownum "/> </LinearLayout> ``` 主显示页面 ``` <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <EditText android:id="@+id/editTextShenfenzheng" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/listxiaofeijilu" android:layout_alignParentTop="true" android:layout_alignRight="@+id/listxiaofeijilu" android:ems="10" android:hint="@string/shenfenzheng" > </EditText> <Button android:id="@+id/chongzhi" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_alignParentRight="true" android:text="@string/chongzhi" /> <ListView android:id="@+id/listxiaofeijilu" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_above="@+id/xiaofeijiluchaxun" android:layout_alignRight="@+id/chongzhi" android:layout_below="@+id/editTextShenfenzheng" > </ListView> <Button android:id="@+id/xiaofeijiluchaxun" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/chongzhi" android:layout_alignBottom="@+id/chongzhi" android:layout_toLeftOf="@+id/chongzhi" android:text="@string/xiaofeijilu" /> </RelativeLayout> ``` 但是现在只把行数显示出来了,里边没有值,附图: ![图片说明](https://img-ask.csdn.net/upload/201504/18/1429357099_489390.png) 这个问题,困扰了我好几天了,烦请各位好友,帮忙出出招,在此写过了!!!
Android,获取不到button的id
http://bbs.csdn.net/topics/390808499 问题跟这个问题类似,但是不想讲整个View放在activity_main中, 第一种方法不理解,求高手指点 我在activity_main.xml中用Fraglayout,调用的是fragment1.xml的布局 fragment1中有按钮需要监听,在Main_activity.java中如果创建按钮的监听器,应用运行不了,keep stopping
如何在Android4.0.4锁屏界面的电话图标右上角显示未接电话个数?
目前,未接电话个数也要获取到。存在的问题就是如何在电话图标右上角显示未接电话个数? 电话图标是控件MultiWaveView上的图标,该类是系统已经定义好的。我想通过直接集成View来自定义自己的View,然后在OnDraw函数通过Canvas和paint,指定坐标来画。但始终是没有显示出来。自定义view的OnDraw函数也有跑到。请指教要实现这效果,该怎样是画未接个数呢?效果图:![enter image description here][1] 我是在自定义的handler中调用构造函数。每10s就会handler处理。 private final Handler mUpdateMissCallNum = new Handler() { @Override public void handleMessage(Message msg) { Log.i(TAG, "mUpdateMissCallNum"); switch (msg.what) { case UPDATESTART: Log.i(TAG, "UPDATESTART"); sNewMissedCallCount = getMissedCallCount(mContext); if (sNewMissedCallCount != sTempMissedCallCount) { Log.i(TAG, "sNewMissedCallCount != sTempMissedCallCount"); new Thread(new Runnable() { public void run() { Log.i(TAG, "sNewMissedCallCount is:"+sNewMissedCallCount); Log.i(TAG, "sTempMissedCallCount is:"+sTempMissedCallCount); sTempMissedCallCount = sNewMissedCallCount; mMissedCallView=new MissedCallView(mContext,sTempMissedCallCount); Log.i(TAG, "sTempMissedCallCount is:"+sTempMissedCallCount); } } ).start(); } break; default: break; } } } mMissedCallView=new MissedCallView(mContext,sTempMissedCallCount);这就是我调用自定义view的地方。通过直接用坐标和canvas,paint画,不要再在xml文件里去写吧。 锁屏用到的xml文件:Keyguardscreentabunlock.xml (framework\base\core\res\res\layout)该文件中用系统自定义的波纹锁屏 <com.android.internal.widget.multiwaveview.MultiWaveView android:id="@+id/unlockwidget" android:orientation="horizontal" android:layoutwidth="matchparent" android:layoutheight="matchparent" android:layout_alignParentBottom="true" android:targetDrawables="@array/lockscreen_targets_with_camera" android:targetDescriptions="@array/lockscreen_target_descriptions_with_camera" android:directionDescriptions="@array/lockscreen_direction_descriptions" android:handleDrawable="@drawable/ic_lockscreen_handle" android:waveDrawable="@drawable/ic_lockscreen_outerring" android:outerRadius="@dimen/multiwaveview_target_placement_radius" android:snapMargin="@dimen/multiwaveview_snap_margin" android:hitRadius="@dimen/multiwaveview_hit_radius" android:rightChevronDrawable="@drawable/ic_lockscreen_chevron_right" android:horizontalOffset="0dip" android:verticalOffset="60dip" android:feedbackCount="3" android:vibrationDuration="20" /> 效果图:![enter image description here][2] 我们只是把相机改成了拨号,就是在这拨号图标上打算画上未接电话数。请指教,谢谢! 这个类存放位置:framework\base\core\java\com\android\internal\widget\multiwaveview\MissedCallView.java public class MissedCallView extends View { private static final String TAG = "MissedCallViews"; public static final int UPDATESTART = 10; private static final int DELAYTIME = 10000; private int sTempMissedCallCount=-1; Context mContext; Canvas mCanvas; public MissedCallView(Context context) { super(context); Log.i(TAG, "MissedCallView1"); mCanvas=new Canvas(); } public MissedCallView(Context context, AttributeSet attrs) { super(context, attrs); Log.i(TAG, "MissedCallView2"); mCanvas=new Canvas(); } public MissedCallView(Context context,int missedCallNum) { super(context); sTempMissedCallCount=missedCallNum; Log.i(TAG, "MissedCallView3"); mCanvas=new Canvas(); } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); if(sTempMissedCallCount>0) { Paint paint=new Paint(Paint.ANTIALIASFLAG); paint.setColor(Color.RED); Log.i(TAG,"Integer.toString(sTempMissedCallCount)is:"+Integer.toString(sTempMissedCallCount)); canvas.drawText(Integer.toString(sTempMissedCallCount),40,310,paint);//50 invalidate(); Log.i(TAG, "invalidate"); } } } 这是自定义view。只跑了 这个构造函数MissedCallView(Context context,int missedCallNum)。是在我定义的public class MissCallObserver extends ContentObserver监听未接电话个数类中调用的。为什么没有跑onDraw函数?请指教。未接电话个数获取是正确的。关键是显示了。 [1]: http://img.my.csdn.net/uploads/201211/30/1354253964_5230.jpg [2]: http://img.my.csdn.net/uploads/201212/04/1354596263_8902.png
关于使用dom4j处理xml文件报错
相同的代码,在JAVA工程里可以运行![图片说明](https://img-ask.csdn.net/upload/201511/24/1448380260_812424.png) 然而我在android工程中调用的时候,却出现了问题!![![![图片说明](https://img-ask.csdn.net/upload/201511/24/1448380343_755911.png)图片说明](https://img-ask.csdn.net/upload/201511/24/1448380339_178600.png)图片说明](https://img-ask.csdn.net/upload/201511/24/1448380433_434313.jpg),程序在第一步URL url = new URL("http://api.map.baidu.com/telematics/v3/weather?location=%E9%95%87%E6%B1%9F&ak=4Xyifj6ty3WCLeLIgANbGR0N");好像就失败了,似乎无法打开。。。。求大神告诉一下怎么解决
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它是一个过程,是一个不断累积、不断沉淀、不断总结、善于传达自己的个人见解以及乐于分享的过程。
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 free -m 其中:m表示兆,也可以用g,注意都要小写 Men:表示物理内存统计 total:表示物理内存总数(total=used+free) use...
比特币原理详解
一、什么是比特币 比特币是一种电子货币,是一种基于密码学的货币,在2008年11月1日由中本聪发表比特币白皮书,文中提出了一种去中心化的电子记账系统,我们平时的电子现金是银行来记账,因为银行的背后是国家信用。去中心化电子记账系统是参与者共同记账。比特币可以防止主权危机、信用风险。其好处不多做赘述,这一层面介绍的文章很多,本文主要从更深层的技术原理角度进行介绍。 二、问题引入 假设现有4个人...
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发...
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 演示地点演示 html代码如下` music 这个年纪 七月的风 音乐 ` 然后就是css`*{ margin: 0; padding: 0; text-decoration: none; list-...
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。
数据库优化 - SQL优化
以实际SQL入手,带你一步一步走上SQL优化之路!
通俗易懂地给女朋友讲:线程池的内部原理
餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”
经典算法(5)杨辉三角
杨辉三角 是经典算法,这篇博客对它的算法思想进行了讲解,并有完整的代码实现。
使用 Docker 部署 Spring Boot 项目
Docker 技术发展为微服务落地提供了更加便利的环境,使用 Docker 部署 Spring Boot 其实非常简单,这篇文章我们就来简单学习下。首先构建一个简单的 S...
英特尔不为人知的 B 面
从 PC 时代至今,众人只知在 CPU、GPU、XPU、制程、工艺等战场中,英特尔在与同行硬件芯片制造商们的竞争中杀出重围,且在不断的成长进化中,成为全球知名的半导体公司。殊不知,在「刚硬」的背后,英特尔「柔性」的软件早已经做到了全方位的支持与支撑,并持续发挥独特的生态价值,推动产业合作共赢。 而对于这一不知人知的 B 面,很多人将其称之为英特尔隐形的翅膀,虽低调,但是影响力却不容小觑。 那么,在...
面试官:你连RESTful都不知道我怎么敢要你?
干货,2019 RESTful最贱实践
刷了几千道算法题,这些我私藏的刷题网站都在这里了!
遥想当年,机缘巧合入了 ACM 的坑,周边巨擘林立,从此过上了"天天被虐似死狗"的生活… 然而我是谁,我可是死狗中的战斗鸡,智力不够那刷题来凑,开始了夜以继日哼哧哼哧刷题的日子,从此"读题与提交齐飞, AC 与 WA 一色 ",我惊喜的发现被题虐既刺激又有快感,那一刻我泪流满面。这么好的事儿作为一个正直的人绝不能自己独享,经过激烈的颅内斗争,我决定把我私藏的十几个 T 的,阿不,十几个刷题网...
白话阿里巴巴Java开发手册高级篇
不久前,阿里巴巴发布了《阿里巴巴Java开发手册》,总结了阿里巴巴内部实际项目开发过程中开发人员应该遵守的研发流程规范,这些流程规范在一定程度上能够保证最终的项目交付质量,通过在时间中总结模式,并推广给广大开发人员,来避免研发人员在实践中容易犯的错误,确保最终在大规模协作的项目中达成既定目标。 无独有偶,笔者去年在公司里负责升级和制定研发流程、设计模板、设计标准、代码标准等规范,并在实际工作中进行...
SQL-小白最佳入门sql查询一
不要偷偷的查询我的个人资料,即使你再喜欢我,也不要这样,真的不好;
redis分布式锁,面试官请随便问,我都会
文章有点长并且绕,先来个图片缓冲下! 前言 现在的业务场景越来越复杂,使用的架构也就越来越复杂,分布式、高并发已经是业务要求的常态。像腾讯系的不少服务,还有CDN优化、异地多备份等处理。 说到分布式,就必然涉及到分布式锁的概念,如何保证不同机器不同线程的分布式锁同步呢? 实现要点 互斥性,同一时刻,智能有一个客户端持有锁。 防止死锁发生,如果持有锁的客户端崩溃没有主动释放锁,也要保证锁可以正常释...
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // doshom...
Nginx 原理和架构
Nginx 是一个免费的,开源的,高性能的 HTTP 服务器和反向代理,以及 IMAP / POP3 代理服务器。Nginx 以其高性能,稳定性,丰富的功能,简单的配置和低资源消耗而闻名。 Nginx 的整体架构 Nginx 里有一个 master 进程和多个 worker 进程。master 进程并不处理网络请求,主要负责调度工作进程:加载配置、启动工作进程及非停升级。worker 进程负责处...
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,...
程序员:我终于知道post和get的区别
是一个老生常谈的话题,然而随着不断的学习,对于以前的认识有很多误区,所以还是需要不断地总结的,学而时习之,不亦说乎
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU...
加快推动区块链技术和产业创新发展,2019可信区块链峰会在京召开
11月8日,由中国信息通信研究院、中国通信标准化协会、中国互联网协会、可信区块链推进计划联合主办,科技行者协办的2019可信区块链峰会将在北京悠唐皇冠假日酒店开幕。   区块链技术被认为是继蒸汽机、电力、互联网之后,下一代颠覆性的核心技术。如果说蒸汽机释放了人类的生产力,电力解决了人类基本的生活需求,互联网彻底改变了信息传递的方式,区块链作为构造信任的技术有重要的价值。   1...
Java世界最常用的工具类库
Apache Commons Apache Commons有很多子项目 Google Guava 参考博客
程序员把地府后台管理系统做出来了,还有3.0版本!12月7号最新消息:已在开发中有github地址
第一幕:缘起 听说阎王爷要做个生死簿后台管理系统,我们派去了一个程序员…… 996程序员做的梦: 第一场:团队招募 为了应对地府管理危机,阎王打算找“人”开发一套地府后台管理系统,于是就在地府总经办群中发了项目需求。 话说还是中国电信的信号好,地府都是满格,哈哈!!! 经常会有外行朋友问:看某网站做的不错,功能也简单,你帮忙做一下? 而这次,面对这样的需求,这个程序员...
网易云6亿用户音乐推荐算法
网易云音乐是音乐爱好者的集聚地,云音乐推荐系统致力于通过 AI 算法的落地,实现用户千人千面的个性化推荐,为用户带来不一样的听歌体验。 本次分享重点介绍 AI 算法在音乐推荐中的应用实践,以及在算法落地过程中遇到的挑战和解决方案。 将从如下两个部分展开: AI算法在音乐推荐中的应用 音乐场景下的 AI 思考 从 2013 年 4 月正式上线至今,网易云音乐平台持续提供着:乐屏社区、UGC...
【技巧总结】位运算装逼指南
位算法的效率有多快我就不说,不信你可以去用 10 亿个数据模拟一下,今天给大家讲一讲位运算的一些经典例子。不过,最重要的不是看懂了这些例子就好,而是要在以后多去运用位运算这些技巧,当然,采用位运算,也是可以装逼的,不信,你往下看。我会从最简单的讲起,一道比一道难度递增,不过居然是讲技巧,那么也不会太难,相信你分分钟看懂。 判断奇偶数 判断一个数是基于还是偶数,相信很多人都做过,一般的做法的代码如下...
为什么要学数据结构?
一、前言 在可视化化程序设计的今天,借助于集成开发环境可以很快地生成程序,程序设计不再是计算机专业人员的专利。很多人认为,只要掌握几种开发工具就可以成为编程高手,其实,这是一种误解。要想成为一个专业的开发人员,至少需要以下三个条件: 1) 能够熟练地选择和设计各种数据结构和算法 2) 至少要能够熟练地掌握一门程序设计语言 3) 熟知所涉及的相关应用领域的知识 其中,后两个条件比较容易实现,而第一个...
Android 9.0 init 启动流程
阅读五分钟,每日十点,和您一起终身学习,这里是程序员Android本篇文章主要介绍Android开发中的部分知识点,通过阅读本篇文章,您将收获以下内容:一、启动流程概述一、 启动流程概述Android启动流程跟Linux启动类似,大致分为如下五个阶段。1.开机上电,加载固化的ROM。2.加载BootLoader,拉起Android OS。3.加载Uboot,初始外设,引导Kernel启动等。...
相关热词 c# 输入ip c# 乱码 报表 c#选择结构应用基本算法 c# 收到udp包后回包 c#oracle 头文件 c# 序列化对象 自定义 c# tcp 心跳 c# ice连接服务端 c# md5 解密 c# 文字导航控件
立即提问

相似问题

1
在Android studio中建立多个XML布局文件时出现了这样的错误
1
C#开发的WinForm程序出现xml文件内容丢失的情况
4
关于mybatis引用mapper.xml文件的路径问题
1
根据wsdl文件用soap调用成功,但用java的HttpURLConnection访问却报错500
1
获取Android PreferenceActivity 生成的xml文件
5
android studio新建项目中activity-main.xml文件里说mainactivity.java中的mainactivity类不可用怎么解决
2
JAVA创建XML格式的文件
1
[新手求教]Tomcat不调用本身的conf内的context.xml文件
3
java 用dom4j解析xml文件中的制定标签节点下的内容
1
android开发中是否可以用flutter来专门制作界面交互然后用android原生java响应事件实现功能?
2
Android layout下的xml文件 无法添加或者删除控件
1
Android Studio 的xml文件有问题
4
父子Springboot项目pom.xml文件父依赖版本冲突
1
有关于android studio里面XML文件全部报红的问题而且清除缓存也没有用!!!有大神来看看吗?
1
java 解析xml文件遇到这种结构怎么解析
1
从eclipse中导出的注释的xml文件在idea中怎么使用吗?
1
Android中如何做滤镜选择的框?
1
为什么项目中有的pom.xml文件用到Greenwich.RELEASE 也有用到 Greenwich.RC2,它们两个区别和作用是什么
1
无法在web.xml或使用此应用程序部署的jar文件中解析绝对uri:[http://java.sun.com/jsp/jstl/core]、
3
导入Java项目,xml文件中出现<#List></#List>一直报这个错误 The content of elements must consist of well-formed character data or markup