【AndroidStudio设置问题】design和text不能同时显示

刚从eclipse转到AndroidStudio,不知道乱按了什么,搞得编辑xml文件时不能预览试图了,只能切来切去。

图片说明

感谢老猿大神指点一下呗~!麻烦了谢谢

1个回答

弄好了 原来先切换到text界面 然后按右边的那个Preview就好啦

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Android studio 如何实现数据保存

你好!本人是Android studio编程初学者 ,最近自己尝试在做一个APP,已经可以实时 显示我希望得到的数据了,但是我想将希望得到的实时显示的数据保存下来,保存到文件 中就行,这是代码: package com.gdy.filepersistencetest; import android.app.Activity; import android.content.Context; import android.os.Bundle; import android.os.Environment; import android.support.design.widget.FloatingActionButton; import android.support.design.widget.Snackbar; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar; import android.view.View; import android.view.Menu; import android.view.MenuItem; import android.widget.EditText; import java.io.BufferedWriter; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStreamWriter; public class MainActivity extends Activity { private EditText edit; @Override protected void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); edit = (EditText)findViewById(R.id.edit); } @Override protected void onDestroy(){ super.onDestroy(); String inputText = edit.getText().toString(); saveToSDCard("wxhn",inputText); } // save infomation in the SDCard public boolean saveToSDCard(String fileName, String content) { // judge weather the SDCard exits,and can be read and written if (!Environment.getExternalStorageState().equals( Environment.MEDIA_MOUNTED)) { return false; } FileOutputStream fileOutputStream = null; File file = new File(Environment.getExternalStorageDirectory(), fileName); try { fileOutputStream = new FileOutputStream(file); fileOutputStream.write(content.getBytes()); return true; } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { try { if (fileOutputStream != null) { fileOutputStream.close(); } } catch (IOException e) { e.printStackTrace(); } } return false; } } 可是当我将APP安装到手机上,找不到我保存的数据,不知道是不是没保存还是我没找到,请大神指导!!

android studio 混淆文件配置

![据说android studio 默认将libs的第三方jar包忽略混淆,所以就没有将类似#-libraryjars libs/umeng-analytics-v5.2.4.jar的操作写入到配置文件,只是将-keep class com.umeng.**{*;}和忽略警告的操作写入配置文件。但是发现gradle在.idea/libraries中引入了其他很多jar包以及这些包的存储地址。刚好程序报错中的com.b.a.a.a 就是指的idea/libraries中的一个包中的类,即为com.loopj.android.http.AsyncHttpClient,不知道怎么在混淆配置文件中忽略这些包的混淆。最后通过配置,发现这些包还是被混淆了,不知道怎么才能配置好这些包不被混淆](https://img-ask.csdn.net/upload/201511/10/1447140316_8891.jpg) 下面是我的配置文件: -optimizationpasses 5 -dontusemixedcaseclassnames -verbose -dontpreverify -optimizations !code/simplification/arithmetic,!field/*,!class/merging/* -keepattributes *Annotation* -keepattributes Signature -keep class android.**{*;} -keep public class * extends android.view -keep public class * extends android.app.Fragment -keep public class * extends android.app.Activity -keep public class * extends android.app.Application -keep public class * extends android.app.Service -keep public class * extends android.content.BroadcastReceiver -keep public class * extends android.content.ContentProvider -keep public class * extends android.app.backup.BackupAgentHelper -keep public class * extends android.preference.Preference -keep public class * extends android.support.V4.** -keep public class * extends android.vending.licensing.ILicensingService -dontwarn android.support.v4.** -keep class * extends android.support.v4.**{*;} -dontwarn android.support.v7.** -keep class * extends android.support.v7.**{*;} /* 将libs文件下的三方包忽略混淆*/ -keep class com.mob.logcolletor.**{ *;} -dontwarn com.mob.tools.** -keep class com.mob.tools.**{ *;} -dontwarn com.mob.baidu.** -keep class com.mob.baidu.**{ *;} -dontwarn cn.sharesdk.framework.** -keep class cn.sharesdk.framework.**{ *;} -dontwarn cn.sharesdk.system.email.** -keep class cn.sharesdk.system.email.**{ *;} -dontwarn cn.sharesdk.tencent.qq.** -keep class cn.sharesdk.tencent.qq.**{ *;} -dontwarn cn.sharesdk.system.text.** -keep class cn.sharesdk.system.text.**{ *;} -dontwarn cn.sharesdk.wechat.friends.** -keep class cn.sharesdk.wechat.friends.**{ *;} -dontwarn cn.sharesdk.wechat.utils.** -keep class cn.sharesdk.wechat.utils.**{ *;} -dontwarn cn.sharesdk.wechat.favorite.** -keep class cn.sharesdk.wechat.favorite.**{ *;} -dontwarn cn.sharesdk.wechat.moments.** -keep class cn.sharesdk.wechat.moments.**{ *;} -dontwarn com.tencent.** -keep class com.tencent..**{ *;} -keep public interface com.mob.logcolletor.** -keep public interface com.mob.tools.** -keep public interface com.mob.baidu.** -keep public interface cn.sharesdk.framework.** -keep public interface cn.sharesdk.system.email.** -keep public interface cn.sharesdk.tencent.qq.** -keep public interface cn.sharesdk.system.text.** -keep public interface cn.sharesdk.wechat.friends.** -keep public interface cn.sharesdk.wechat.utils.** -keep public interface cn.sharesdk.wechat.favorite.** -keep public interface cn.sharesdk.wechat.moments.** -keepclasseswithmembernames class * { native <methods>; } -keepclassmembers public class * extends android.view.View { void set*(***); *** get*(); } -keepclasseswithmembernames class * { void onClick*(...); } -keepclasseswithmembernames class * { *** *Callback(...); } -keepclasseswithmembernames class * { public <init>(android.content.Context,android.util.AttributeSet,int); } -keepclasseswithmembernames class * { public <init>(android.content.Context,android.util.AttributeSet); } -keepclassmembers class * extends android.app.Activity { public void *(android.view.View); } -keepclassmembers enum * { public static **[] values(); public static ** valueOf(java.lang.String); } -keep class * implements android.os.Parcelable { public static final android.os.Parcelable$Creator *; } -keep class org.apache.http.**{*;} -keepclassmembers class **.R$* { public static <fields>; } /* 将External Libraries文件下的三方包忽略混淆*/ -libraryjars $USER_HOME$/.gradle/caches/modules-2/files-2.1/com.loopj.android/android-async-http/1.4.8/77bbfe240e437ecb396d982afa0d3bd4f9090ba7/android-async-http-1.4.8.jar -libraryjars $USER_HOME$/.gradle/caches/modules-2/files-2.1/com.loopj.android/android-async-http/1.4.8/ec314dce534e83c93364388d023625bb8e605e38/android-async-http-1.4.8-sources.jar! -libraryjars build/intermediates/exploded-aar/com.soundcloud.android/android-crop/1.0.0/jars/classes.jar -libraryjars build/intermediates/exploded-aar/com.android.support/appcompat-v7/23.0.0/jars/classes.jar -libraryjars $USER_HOME$/Documents/androidWorkSpace/android-sdk-macosx/extras/android/m2repository/com/android/support/appcompat-v7/23.0.0/appcompat-v7-23.0.0-sources.jar -libraryjars $USER_HOME$/.gradle/caches/modules-2/files-2.1/com.jakewharton/butterknife/7.0.1/d5d13ea991eab0252e3710e5df3d6a9d4b21d461/butterknife-7.0.1.jar -libraryjars $USER_HOME$/.gradle/caches/modules-2/files-2.1/com.jakewharton/butterknife/7.0.1/ad53343e57ae0969aaf451a19eef381abe2ad3a1/butterknife-7.0.1-sources.jar -libraryjars build/intermediates/exploded-aar/com.android.support/cardview-v7/23.0.0/jars/classes.jar -libraryjars $USER_HOME$/Documents/androidWorkSpace/android-sdk-macosx/extras/android/m2repository/com/android/support/cardview-v7/23.0.0/cardview-v7-23.0.0-sources.jar -libraryjars build/intermediates/exploded-aar/com.android.support/design/23.0.0/jars/classes.jar -libraryjars $USER_HOME$/.gradle/caches/modules-2/files-2.1/com.github.bumptech.glide/glide/3.6.1/86b122e640af09b0723e1fa44083c354ba6d9089/glide-3.6.1.jar -libraryjars $USER_HOME$/.gradle/caches/modules-2/files-2.1/com.github.bumptech.glide/glide/3.6.1/c84c6f18844d9ae76308619008d40277de5e77d3/glide-3.6.1-sources.jar -libraryjars $USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.code.gson/gson/2.3/5fc52c41ef0239d1093a1eb7c3697036183677ce/gson-2.3.jar -libraryjars $USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.code.gson/gson/2.3/21e31b9298ed677b17fcac6dd0eb0a82ec35adc2/gson-2.3-sources.jar -libraryjars $USER_HOME$/.gradle/caches/modules-2/files-2.1/org.apache.httpcomponents/httpcore/4.3.2/31fbbff1ddbf98f3aa7377c94d33b0447c646b6e/httpcore-4.3.2.jar -libraryjars $USER_HOME$/.gradle/caches/modules-2/files-2.1/org.apache.httpcomponents/httpcore/4.3.2/4809f38359edeea9487f747e09aa58ec8d3a54c5/httpcore-4.3.2-sources.jar -libraryjars build/intermediates/exploded-aar/com.rengwuxian.materialedittext/library/2.1.4/jars/classes.jar -libraryjars $USER_HOME$/.gradle/caches/modules-2/files-2.1/com.nineoldandroids/library/2.4.0/e9b63380f3a242dbdbf103a2355ad7e43bad17cb/library-2.4.0.jar -libraryjars $USER_HOME$/.gradle/caches/modules-2/files-2.1/com.nineoldandroids/library/2.4.0/83d41901478fa8795254244acbafd03f14224dab/library-2.4.0-sources.jar -libraryjars build/intermediates/exploded-aar/com.orhanobut/logger/1.10/jars/classes.jar -libraryjars build/intermediates/exploded-aar/com.android.support/recyclerview-v7/23.0.0/jars/classes.jar -libraryjars $USER_HOME$/Documents/androidWorkSpace/android-sdk-macosx/extras/android/m2repository/com/android/support/recyclerview-v7/23.0.0/recyclerview-v7-23.0.0-sources.jar -libraryjars $USER_HOME$/Documents/androidWorkSpace/android-sdk-macosx/extras/android/m2repository/com/android/support/support-annotations/23.0.0/support-annotations-23.0.0.jar -libraryjars $USER_HOME$/Documents/androidWorkSpace/android-sdk-macosx/extras/android/m2repository/com/android/support/support-annotations/23.0.0/support-annotations-23.0.0-sources.jar -libraryjars build/intermediates/exploded-aar/com.android.support/support-v4/23.0.0/jars/classes.jar -libraryjars build/intermediates/exploded-aar/com.android.support/support-v4/23.0.0/jars/libs/internal_impl-23.0.0.jar -libraryjars $USER_HOME$/Documents/androidWorkSpace/android-sdk-macosx/extras/android/m2repository/com/android/support/support-v4/23.0.0/support-v4-23.0.0-sources.jar -dontwarn com.loopj.android.http.** -keep class com.loopj.android.http.**{ *;} -dontwarn com.baidu.** -keep class com.baidu.**{ *;} -dontwarn com.bumptech.glide.** -keep class com.bumptech.glide.**{ *;} -dontwarn com.google.gson.** -keep class com.google.gson.http.**{ *;} -dontwarn com.nineoldandroids.** -keep class com.nineoldandroids.**{ *;} -dontwarn com.orhanobut.logger.** -keep class com.orhanobut.logger.**{ *;} -dontwarn com.rengwuxian.materialedittext.** -keep class com.rengwuxian.materialedittext.**{ *;} -dontwarn com.soundcloud.android.crop.** -keep class com.soundcloud.android.crop.**{ *;} -ignorewarning -dump class_files.txt -printseeds seeds.txt -printusage unused.txt -printmapping mapping.txt

AndroidStudio的快捷键,相当于Eclipse的Alt+pageDown

AndroidStudio的快捷键,相当于Eclipse的Alt+pageDown;就是在Design 和text中切换,找了好久都没有找到,设置keymap为Eclipse后,都没有效果……

安卓,为什么我写的toolbar会不显示出来?

我用Android Studio建一个Empty Activity 代码如下: xml代码: <?xml version="1.0" encoding="utf-8"?> <android.support.design.widget.CoordinatorLayout 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:fitsSystemWindows="true" tools:context=".MainActivity"> <android.support.design.widget.AppBarLayout android:id="@+id/appbar" android:layout_width="match_parent" android:layout_height="wrap_content" android:theme="@style/AppTheme.AppBarOverlay" > <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:title="主标题" android:subtitle="副标题" /> </android.support.design.widget.AppBarLayout> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:minHeight="40dp" android:text="这是个测试" android:textSize="50dp" android:textColor="#ff6666"/> </android.support.design.widget.CoordinatorLayout> 以下是style: <resources> <!-- Base application theme. --> <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <!-- Customize your theme here. --> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorAccent">@color/colorAccent</item> </style> <style name="AppTheme.NoActionBar" parent="Theme.AppCompat.Light.NoActionBar"> <item name="android:windowActionBar">false</item> <item name="android:windowNoTitle">true</item> </style> <style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar"></style> <style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" /> </resources> 以下是manifest.xml: <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.dell_pc.myapplication" > <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/AppTheme" > <activity android:name=".MainActivity" android:theme="@style/AppTheme.NoActionBar"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest> 以下是mainActivity: package com.example.dell_pc.myapplication; import android.app.ActionBar; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.support.v7.widget.Toolbar; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Toolbar toolbar=(Toolbar)super.findViewById(R.id.toolbar); setSupportActionBar(toolbar); } } 下面贴张效果图,我真的想不明白为什么会是这样的效果: ![图片说明](https://img-ask.csdn.net/upload/201601/23/1453559017_208379.png) 图片中有白色的“MyApplication”这几个字。请问为什么会是这样的效果?怎样能把toolbar显示出来?

Android studio报错 view is not constrained....

content_main.xml //在两个button和LinearLayout下都有这个错误,看了半天注释,似乎是要约束组件的位置?但内层的EditText却没有这个错误,试了很多方法都没法解决 <?xml version="1.0" encoding="utf-8"?> <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.ryo.myapplication.MainActivity"> <Button android:id="@+id/button3" style="@style/Widget.AppCompat.Button.Borderless" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true" android:fadingEdge="horizontal|vertical" android:text="@string/Login_Button_1" tools:layout_editor_absoluteX="67dp" tools:layout_editor_absoluteY="503dp" /> <Button android:id="@+id/button" style="@style/Widget.AppCompat.Button.Borderless" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true" android:fadingEdge="horizontal|vertical" android:text="@string/Login_Button" tools:layout_editor_absoluteX="227dp" tools:layout_editor_absoluteY="503dp" /> <LinearLayout android:id="@+id/Login_text1" android:layout_width="385dp" android:layout_height="164dp" android:layout_alignLeft="@+id/button" android:layout_alignStart="@+id/button" android:layout_centerVertical="true" android:layout_marginTop="-23dp" android:orientation="vertical" android:weightSum="1" app:layout_constraintTop_toTopOf="parent" tools:layout_editor_absoluteX="0dp"> <EditText android:id="@+id/editText" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="0.40" android:ems="10" android:hint="@string/Login_UserName" android:inputType="textPersonName" /> <EditText android:id="@+id/editText2" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="0.51" android:ems="10" android:hint="@string/Login_Password" android:inputType="textPassword" /> </LinearLayout> </android.support.constraint.ConstraintLayout>

为什么 autocompletetextview

为什么 autocompletetextview 用了直接写的 adapter showdropdown 没有效果了啊 下面是我写的adapter ``` package com.depart.adapter; import java.util.ArrayList; import java.util.List; import android.content.Context; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.Filter; import android.widget.Filterable; import android.widget.ImageView; import android.widget.TextView; import com.depart.autocomplete.R; import com.depart.db.HistorySQLiteOpenHelper; public class AutoCompleteAdapter extends BaseAdapter implements Filterable{ private Context context; private ArrayFilter mFilter; private ArrayList<String> mOriginalValues;//所有的Item private List<String> mObjects;//过滤后的item private final Object mLock = new Object(); private int maxMatch=10;//最多显示多少个选项,负数表示全部 public AutoCompleteAdapter(Context context,ArrayList<String> mOriginalValues,int maxMatch){ this.context=context; this.mOriginalValues=mOriginalValues; this.maxMatch=maxMatch; } public AutoCompleteAdapter(){ } @Override public Filter getFilter() { // TODO Auto-generated method stub if (mFilter == null) { mFilter = new ArrayFilter(); } return mFilter; } public void refresh(){ notifyDataSetChanged(); } private class ArrayFilter extends Filter { @Override protected FilterResults performFiltering(CharSequence prefix) { // TODO Auto-generated method stub FilterResults results = new FilterResults(); // if (mOriginalValues == null) { // synchronized (mLock) { // mOriginalValues = new ArrayList<String>(mObjects);// // } // } System.out.println("prefix:"+prefix); if (prefix == null || prefix.length() == 0) { synchronized (mLock) { Log.i("tag", "mOriginalValues.size="+mOriginalValues.size()); ArrayList<String> list = new ArrayList<String>(mOriginalValues); results.values = list; results.count = list.size(); return results; } } else { String prefixString = prefix.toString().toLowerCase(); if(prefixString==null){ prefixString="1"; } final int count = mOriginalValues.size(); final ArrayList<String> newValues = new ArrayList<String>(count); for (int i = 0; i < count; i++) { final String value = mOriginalValues.get(i); final String valueText = value.toLowerCase(); if(valueText.contains(prefixString)){//匹配所有 newValues.add(value); } // First match against the whole, non-splitted value /* if (valueText.startsWith(prefixString)) { //源码 ,匹配开头 newValues.add(value); } */ // else { // final String[] words = valueText.split(" ");//分隔符匹配,效率低 // final int wordCount = words.length; // // for (int k = 0; k < wordCount; k++) { // if (words[k].startsWith(prefixString)) { // newValues.add(value); // break; // } // } // } if(maxMatch>0){//有数量限制 if(newValues.size()>maxMatch-1){//不要太多 break; } } } results.values = newValues; results.count = newValues.size(); } return results; } @Override protected void publishResults(CharSequence constraint, FilterResults results) { // TODO Auto-generated method stub mObjects = (List<String>) results.values; if (results.count > 0) { notifyDataSetChanged(); } else { notifyDataSetInvalidated(); } } } @Override public int getCount() { // TODO Auto-generated method stub if(mObjects!=null){ return mObjects.size(); } return 0; } @Override public Object getItem(int position) { // TODO Auto-generated method stub //此方法有误,尽量不要使用 return mObjects.get(position); } @Override public long getItemId(int position) { // TODO Auto-generated method stub return position; } @Override public View getView(final int position, View convertView, ViewGroup parent) { // TODO Auto-generated method stub ViewHolder holder = null; if(convertView==null){ holder=new ViewHolder(); LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); convertView=inflater.inflate(R.layout.simple_list_item_for_autocomplete, null); holder.tv=(TextView)convertView.findViewById(R.id.simple_item_0); holder.iv=(ImageView)convertView.findViewById(R.id.simple_item_1); convertView.setTag(holder); }else{ holder = (ViewHolder) convertView.getTag(); } holder.tv.setText(mObjects.get(position)); holder.iv.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub String obj=mObjects.remove(position); mOriginalValues.remove(obj); /* Cursor c = new HistorySQLiteOpenHelper(context).getWritableDatabase(). query("history", new String []{"_id","name"}, "name = ? ", new String[]{obj}, null, null, null, null);*/ new HistorySQLiteOpenHelper(context).getWritableDatabase(). delete("history", "name = ? ", new String[]{obj}); notifyDataSetChanged(); } }); return convertView; } public void showd(){ } class ViewHolder { TextView tv; ImageView iv; } public ArrayList<String> getAllItems(){ return mOriginalValues; } } ```

Android Studio 打包程序报错?该怎么解决

Error:Execution failed for task ':app:transformClassesWithJarMergingForDebug'. > com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: com/google/zxing/aztec/AztecDetectorResult.class

Android新手上路,activity.main.xml里面没有视频中的手机预览窗口啊?

这个是我的: ![图片说明](https://img-ask.csdn.net/upload/201911/30/1575127479_451385.png) 这个是视频教程:![图片说明](https://img-ask.csdn.net/upload/201911/30/1575127754_48568.png)

ConstraintLayout中如何将按钮与spinner对齐

![图片说明](https://img-ask.csdn.net/upload/202005/29/1590716408_804091.jpg) 上图有个按钮和spinner。它们都处于一个constraintLayout中,但很明显,它们并没有对齐。spinner的文字和按钮的顶部对齐了,可我想要“提交”和“李万国”对齐。其xml代码如下: ``` <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="提交" android:id="@+id/lbl_review_apply_button" app:layout_constraintRight_toLeftOf="@+id/lbl_reviewer_spinner" app:layout_constraintTop_toTopOf="@id/lbl_reviewer_spinner" /> <Spinner android:layout_width="wrap_content" android:layout_height="wrap_content" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toBottomOf="@id/lbl_apply_date" android:layout_marginTop="50dp" android:id="@+id/lbl_reviewer_spinner" /> ``` 我尝试给按钮添加了 ``` app:layout_constraintBaseline_toBaselineOf="@+id/lbl_reviewer_spinner" ``` 但这样一来,按钮就飞到上面去了。所以我想知道怎样才能使这两个对齐。

关于mock.js的小白问题

因为还没怎么接触过mockjs所以不太了解。我现在需要采用mockjs造新增/编辑接口测试数据,运用的工具是webstorm。 看了官方文档还是不明白我应该如何解析接口给的json。 接口例子: ![图片说明](https://img-ask.csdn.net/upload/201905/09/1557372701_939563.png)

安卓运行报错android.content.ActivityNotFoundException: Unable to find explicit activity class

以下是报错信息: ``` android.content.ActivityNotFoundException: Unable to find explicit activity class {com.example.helloworld/android.widget.TextView}; have you declared this activity in your AndroidManifest.xml? ``` 然后我搜索了一下得到的解决方案是没有将activity在mainfest.xml中注册,但是我已经注册过了,以下是xml中的代码 ``` <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.helloworld"> <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"> <activity android:name=".TextViewActivity" android:label=""></activity>//注册第二个活动 <activity android:name=".MainActivity"> //前面的点是包名省略, <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest> ``` 以下是第二个活动的代码 ``` package com.example.helloworld; import androidx.appcompat.app.AppCompatActivity; import android.graphics.Paint; import android.os.Bundle; import android.widget.TextView; public class TextViewActivity extends AppCompatActivity { private TextView tv2; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_text_view); tv2 = findViewById(R.id.tv2); tv2.getPaint().setFlags(Paint.STRIKE_THRU_TEXT_FLAG);//加入划线 tv2.getPaint().setAntiAlias(true);//去除锯齿 } } ``` 以下是第二个活动的xml代码 ``` <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center_horizontal" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/tv_test1" android:textColor="#000000" android:textSize="30sp" />//在strings.xml中编辑好后,在这里调用 //最大行数为一,且显示不下时出现省略号 <TextView android:layout_width="100dp" android:layout_height="wrap_content" android:maxLines="1" android:ellipsize="end" android:id="@+id/t2" android:text="哎哟不错哦!" android:textColor="#000000" android:textSize="30sp"/> //有额外选项或者下拉框(大致这个意思) <TextView android:layout_width="match_parent" android:layout_height="50dp" android:drawableRight="@drawable/arrow3" android:text="for you and me" android:textColor="#000000" android:textSize="30sp" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="xxx" android:id="@+id/tv2" android:textColor="#000000" android:textSize="30sp" /> </LinearLayout> ``` 以下是mainactivity的代码(之后补充的) ``` public class MainActivity extends AppCompatActivity { private Button btntv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);//设置内容视图 btntv = findViewById(R.id.bt_tv1); btntv.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { //跳转到TextView演示界面 Intent intent = new Intent(MainActivity.this, TextView.class); startActivity(intent); } }); } } ```

为何找不到android:ems 属性?

android:ems=“10”,数上这么写(这本书是今年出版的)。 可是, 我 在 Design 下 的Properties 下 找不到 这个 ems, 直接在xml 里写,则报错 “Unexpected text found in layout file..." . 我的配置 Android Studio1.5.1, 建立的Project Android 4.4。

在一个 activity 中保存值,然后在不同的 activity 中显示这个值

我想在一个 activity 保存我的密码,我想把密码恢复到不同的 activity 中,但是当程序开启第二个 activity 时就奔溃了,这是什么原因呢? package com.example.test; public class MainActivity extends Activity { String finall; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); String FILENAME = "hello_file.txt"; String string = "1234"; FileOutputStream fos; try { fos = openFileOutput(FILENAME, Context.MODE_PRIVATE); fos.write(string.getBytes()); fos.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } try { FileInputStream in = openFileInput("hello_file.txt"); StringBuffer fileContent = new StringBuffer(""); byte[] buffer = new byte[4]; while(in.read(buffer) != -1) { fileContent.append(new String(buffer)); } finall = fileContent.toString(); in.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } Button button = (Button)findViewById(R.id.button); button.setText(finall); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { sendGo(v); } }); } public void sendGo(View v) { Intent intent = new Intent(this, SecondActivity.class); startActivity(intent); } } 第一部分正常运行,因为我在相同的activity 中能读取我保存的文件。但是当我试着在另一个activity读取时,就不能运行。 package com.example.test; public class SecondActivity extends Activity { String finall=""; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_second); // Show the Up button in the action bar. setupActionBar(); try { FileInputStream in = openFileInput("hello_file.txt"); StringBuffer fileContent = new StringBuffer(""); byte[] buffer = new byte[4]; while(in.read(buffer) != -1) { fileContent.append(new String(buffer)); } finall = fileContent.toString(); in.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } TextView text = (TextView)findViewById(R.id.mehmet); text.setText(finall); } @TargetApi(Build.VERSION_CODES.HONEYCOMB) private void setupActionBar() { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { getActionBar().setDisplayHomeAsUpEnabled(true); } } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: // This ID represents the Home or Up button. In the case of this // activity, the Up button is shown. Use NavUtils to allow users // to navigate up one level in the application structure. For // more details, see the Navigation pattern on Android Design: // // http://developer.android.com/design/patterns/navigation.html#up-vs-back // NavUtils.navigateUpFromSameTask(this); return true; } return super.onOptionsItemSelected(item); } }

设计android应用后端

<div class="post-text" itemprop="text"> <p>If I need to design an entire android app and host my app on google play, and my users need to get real-time data, how would I go about designing the backend.</p> <p>I learnt few things about views, view groups, layouts, event listeners in java, programming in latest android studio. But I'm just in the learning phase.</p> <p>Is there any other better IDE. Can we program in atom, does it has any package that can emulate android phones.</p> <p>Mainly I'm concerned about the DB choice, frontend-backend communication. Is there any service which is open source for hosting in the cloud that has a great uptime and supporting easy scaling. Of course, I can google each and everything, but those will be on different perspectives. I just wanted some answer which is tailor made and easy to understand.</p> </div>

Firebase消息在设备上接收,但不会通过通知显示

<div class="post-text" itemprop="text"> <p>I'm trying to integrate Firebase Cloud Messaging (I use <a href="http://www.androidhive.info/2012/10/android-push-notifications-using-google-cloud-messaging-gcm-php-and-mysql/" rel="nofollow noreferrer">this code</a>, which is <a href="https://github.com/anta40/android-push-notification-firebase" rel="nofollow noreferrer">mirrored here</a>) with my existing app.</p> <p>Relevant codes:</p> <p><strong>service.php</strong></p> <pre><code>$msg_id = $_POST['id']; $title = $_POST['title']; $content = $_POST['content']; $msg_date = $_POST['date']; $author = $_POST['author']; // insert the message into DB $sql = "INSERT INTO tbl_message(msg_id, title, content, msg_date, author) VALUES ('$msg_id','$title','$content','$msg_date','$author')"; if ($result = mysqli_query($db, $sql)){ $firebase = new Firebase(); $push = new Push(); $payload = array(); $payload['foo'] = '123'; $payload['bar'] = 'xyz'; $push-&gt;setTitle($title); $push-&gt;setMessage($content); $push-&gt;setAuthor($author); $push-&gt;setDate($msg_date); $push-&gt;setImage(''); $push-&gt;setPayload($payload); $push-&gt;setIsBackground(FALSE); $resp = ''; $response = ''; $resp = $push-&gt;getPush(); $response = $firebase-&gt;sendToTopic('global', $resp); echo $response; } </code></pre> <p><strong>Firebase.php</strong></p> <pre><code>&lt;?php class Firebase { // sending push message to single user by firebase reg id public function send($to, $message) { $fields = array( 'to' =&gt; $to, //'data' =&gt; $message, 'data' =&gt; array("message" =&gt; $message)); return $this-&gt;sendPushNotification($fields); } // Sending message to a topic by topic name public function sendToTopic($to, $message) { $fields = array( 'to' =&gt; '/topics/' . $to, //'data' =&gt; $message, 'data' =&gt; array("message" =&gt; $message) ); return $this-&gt;sendPushNotification($fields); } // sending push message to multiple users by firebase registration ids public function sendMultiple($registration_ids, $message) { $fields = array( 'to' =&gt; $registration_ids, //'data' =&gt; $message, 'data' =&gt; array("message" =&gt; $message) ); return $this-&gt;sendPushNotification($fields); } // function makes curl request to firebase servers private function sendPushNotification($fields) { require_once 'config.php'; // Set POST variables $url = 'https://fcm.googleapis.com/fcm/send'; $headers = array( 'Authorization: key=' . FIREBASE_API_KEY, 'Content-Type: application/json' ); // Open connection $ch = curl_init(); // Set the url, number of POST vars, POST data curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // Disabling SSL Certificate support temporarly curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($fields)); // Execute post $result = curl_exec($ch); if ($result === FALSE) { die('Curl failed: ' . curl_error($ch)); } // Close connection curl_close($ch); return $result; } } ?&gt; </code></pre> <p><strong>MainActivity.java</strong></p> <pre><code>package studio.emcorp.monitoringsiswa; import android.content.BroadcastReceiver; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.content.IntentFilter; import android.content.SharedPreferences; import android.os.Bundle; import android.support.design.widget.FloatingActionButton; import android.support.design.widget.NavigationView; import android.support.design.widget.Snackbar; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentTransaction; import android.support.v4.content.LocalBroadcastManager; import android.support.v4.view.GravityCompat; import android.support.v4.widget.DrawerLayout; import android.support.v7.app.ActionBarDrawerToggle; import android.support.v7.app.AlertDialog; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar; import android.text.TextUtils; import android.util.Log; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.TextView; import android.widget.Toast; import com.google.firebase.messaging.FirebaseMessaging; public class MainActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener { private static final String TAG = MainActivity.class.getSimpleName(); private BroadcastReceiver mRegistrationBroadcastReceiver; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ; mRegistrationBroadcastReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { // checking for type intent filter if (intent.getAction().equals(NotificationConfig.REGISTRATION_COMPLETE)) { // gcm successfully registered // now subscribe to `global` topic to receive app wide notifications FirebaseMessaging.getInstance().subscribeToTopic(NotificationConfig.TOPIC_GLOBAL); displayFirebaseRegId(); } else if (intent.getAction().equals(NotificationConfig.PUSH_NOTIFICATION)) { // new push notification is received String message = intent.getStringExtra("message"); Toast.makeText(getApplicationContext(), message, Toast.LENGTH_LONG).show(); //txtMessage.setText(message); } } }; @Override protected void onResume() { super.onResume(); // register GCM registration complete receiver LocalBroadcastManager.getInstance(this).registerReceiver(mRegistrationBroadcastReceiver, new IntentFilter(NotificationConfig.REGISTRATION_COMPLETE)); // register new push message receiver // by doing this, the activity will be notified each time a new message arrives LocalBroadcastManager.getInstance(this).registerReceiver(mRegistrationBroadcastReceiver, new IntentFilter(NotificationConfig.PUSH_NOTIFICATION)); // clear the notification area when the app is opened NotificationUtil.clearNotifications(getApplicationContext()); } @Override protected void onPause() { LocalBroadcastManager.getInstance(this).unregisterReceiver(mRegistrationBroadcastReceiver); super.onPause(); } } </code></pre> <p>Sending messages directly from Firebase Console works fine. Now the problem is sending messages via PHP script. Somewhow the server manages to send the message successfuly, e.g:</p> <blockquote> <p>{"message_id":4732936739964848111}</p> </blockquote> <p>, and the device receive it: </p> <blockquote> <p>06-19 09:26:21.590 18604-19560/net.anta40.app.firebasetest E/MyFirebaseMessagingService: From: /topics/global 06-19 09:26:21.590 18604-19560/net.anta40.app.firebasetest E/MyFirebaseMessagingService: Data Payload: {message={"data":{"image":"","is_background":false,"payload":{"bar":"xyz","foo":"123"},"title":"test","message":"mehehehe","timestamp":"2017-06-19 2:26:21"}}} 06-19 09:26:21.600 18604-19560/net.anta40.app.firebasetest E/MyFirebaseMessagingService: push json: {"message":{"data":{"timestamp":"2017-06-19 2:26:21","message":"mehehehe","payload":{"bar":"xyz","foo":"123"},"image":"","title":"test","is_background":false}}} 06-19 09:26:21.600 18604-19560/net.anta40.app.firebasetest E/MyFirebaseMessagingService: Json Exception: No value for data 06-19 09:26:21.720 1098-1098/? D/wpa_supplicant: RX ctrl_iface - hexdump(len=11): 53 49 47 4e 41 4c 5f 50 4f 4c 4c 06-19 09:26:21.720 1098-1098/? D/wpa_supplicant: wlan0: Control interface command 'SIGNAL_POLL'</p> </blockquote> <p>but not displayed via notifications. What goes wrong here?</p> </div>

提示cannot resolve symbol 'NonNull'

# 从网上下下来一个Demo 然后自己在学习的过程中,在demo基础上修修改改,之前能打开,今天编译0错误0警告,能启动虚拟机,但是应用就是跑 不起来,显示已经停止,发现错误好像都在这个叫Hyphenator.java的类中, ## import android.annotation.NonNull;提示cannot resolve symbol 'NonNull' ## import com.android.internal.annotations.GuardedBy;提示connot resolve symbol 'GuardedBy' ``` package android.text; import android.annotation.NonNull; import android.util.Log; import com.android.internal.annotations.GuardedBy; import java.io.File; import java.io.IOException; import java.io.RandomAccessFile; import java.nio.ByteBuffer; import java.nio.MappedByteBuffer; import java.nio.channels.FileChannel; import java.util.HashMap; import java.util.Locale; /** * Hyphenator is a wrapper class for a native implementation of automatic hyphenation, * in essence finding valid hyphenation opportunities in a word. * * @hide */ public class Hyphenator { // This class has deliberately simple lifetime management (no finalizer) because in // the common case a process will use a very small number of locales. private static String TAG = "Hyphenator"; private final static Object sLock = new Object(); @GuardedBy("sLock") final static HashMap<Locale, Hyphenator> sMap = new HashMap<Locale, Hyphenator>(); final static Hyphenator sEmptyHyphenator = new Hyphenator(StaticLayout.nLoadHyphenator(null, 0), null); final private long mNativePtr; // We retain a reference to the buffer to keep the memory mapping valid @SuppressWarnings("unused") final private ByteBuffer mBuffer; private Hyphenator(long nativePtr, ByteBuffer b) { mNativePtr = nativePtr; mBuffer = b; } public long getNativePtr() { return mNativePtr; } public static Hyphenator get(@Nullable Locale locale) { synchronized (sLock) { Hyphenator result = sMap.get(locale); if (result != null) { return result; } // If there's a variant, fall back to language+variant only, if available final String variant = locale.getVariant(); if (!variant.isEmpty()) { final Locale languageAndVariantOnlyLocale = new Locale(locale.getLanguage(), "", variant); result = sMap.get(languageAndVariantOnlyLocale); if (result != null) { sMap.put(locale, result); return result; } } // Fall back to language-only, if available final Locale languageOnlyLocale = new Locale(locale.getLanguage()); result = sMap.get(languageOnlyLocale); if (result != null) { sMap.put(locale, result); return result; } // Fall back to script-only, if available final String script = locale.getScript(); if (!script.equals("")) { final Locale scriptOnlyLocale = new Locale.Builder() .setLanguage("und") .setScript(script) .build(); result = sMap.get(scriptOnlyLocale); if (result != null) { sMap.put(locale, result); return result; } } sMap.put(locale, sEmptyHyphenator); // To remember we found nothing. } return sEmptyHyphenator; } private static Hyphenator loadHyphenator(String languageTag) { String patternFilename = "hyph-" + languageTag.toLowerCase(Locale.US) + ".hyb"; File patternFile = new File(getSystemHyphenatorLocation(), patternFilename); try { RandomAccessFile f = new RandomAccessFile(patternFile, "r"); try { FileChannel fc = f.getChannel(); MappedByteBuffer buf = fc.map(FileChannel.MapMode.READ_ONLY, 0, fc.size()); long nativePtr = StaticLayout.nLoadHyphenator(buf, 0); return new Hyphenator(nativePtr, buf); } finally { f.close(); } } catch (IOException e) { Log.e(TAG, "error loading hyphenation " + patternFile, e); return null; } } private static File getSystemHyphenatorLocation() { return new File("/system/usr/hyphen-data"); } // This array holds pairs of language tags that are used to prefill the map from locale to // hyphenation data: The hyphenation data for the first field will be prefilled from the // hyphenation data for the second field. // // The aliases that are computable by the get() method above are not included. private static final String[][] LOCALE_FALLBACK_DATA = { // English locales that fall back to en-US. The data is // from CLDR. It's all English locales, minus the locales whose // parent is en-001 (from supplementalData.xml, under <parentLocales>). // TODO: Figure out how to get this from ICU. {"en-AS", "en-US"}, // English (American Samoa) {"en-GU", "en-US"}, // English (Guam) {"en-MH", "en-US"}, // English (Marshall Islands) {"en-MP", "en-US"}, // English (Northern Mariana Islands) {"en-PR", "en-US"}, // English (Puerto Rico) {"en-UM", "en-US"}, // English (United States Minor Outlying Islands) {"en-VI", "en-US"}, // English (Virgin Islands) // All English locales other than those falling back to en-US are mapped to en-GB. {"en", "en-GB"}, // For German, we're assuming the 1996 (and later) orthography by default. {"de", "de-1996"}, // Liechtenstein uses the Swiss hyphenation rules for the 1901 orthography. {"de-LI-1901", "de-CH-1901"}, // Norwegian is very probably Norwegian Bokmål. {"no", "nb"}, // Use mn-Cyrl. According to CLDR's likelySubtags.xml, mn is most likely to be mn-Cyrl. {"mn", "mn-Cyrl"}, // Mongolian // Fall back to Ethiopic script for languages likely to be written in Ethiopic. // Data is from CLDR's likelySubtags.xml. // TODO: Convert this to a mechanism using ICU4J's ULocale#addLikelySubtags(). {"am", "und-Ethi"}, // Amharic {"byn", "und-Ethi"}, // Blin {"gez", "und-Ethi"}, // Geʻez {"ti", "und-Ethi"}, // Tigrinya {"wal", "und-Ethi"}, // Wolaytta }; /** * Load hyphenation patterns at initialization time. We want to have patterns * for all locales loaded and ready to use so we don't have to do any file IO * on the UI thread when drawing text in different locales. * * @hide */ public static void init() { sMap.put(null, null); // TODO: replace this with a discovery-based method that looks into /system/usr/hyphen-data String[] availableLanguages = { "as", "bn", "cy", "da", "de-1901", "de-1996", "de-CH-1901", "en-GB", "en-US", "es", "et", "eu", "fr", "ga", "gu", "hi", "hr", "hu", "hy", "kn", "ml", "mn-Cyrl", "mr", "nb", "nn", "or", "pa", "pt", "sl", "ta", "te", "tk", "und-Ethi", }; for (int i = 0; i < availableLanguages.length; i++) { String languageTag = availableLanguages[i]; Hyphenator h = loadHyphenator(languageTag); if (h != null) { sMap.put(Locale.forLanguageTag(languageTag), h); } } for (int i = 0; i < LOCALE_FALLBACK_DATA.length; i++) { String language = LOCALE_FALLBACK_DATA[i][0]; String fallback = LOCALE_FALLBACK_DATA[i][1]; sMap.put(Locale.forLanguageTag(language), sMap.get(Locale.forLanguageTag(fallback))); } } } ``` ## ## 这个是我build.gradle文件 ``` apply plugin: 'com.android.application' android { compileSdkVersion 24 buildToolsVersion '25.0.0' defaultConfig { applicationId "cn.leancloud.leanstoragegettingstarted" minSdkVersion 14 targetSdkVersion 24 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } //为了解决部分第三方库重复打包了META-INF的问题 packagingOptions{ exclude 'META-INF/LICENSE.txt' exclude 'META-INF/NOTICE.txt' } } dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') compile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:24.0.0' compile 'com.android.support:design:24.0.0' // LeanCloud 基础包 compile 'cn.leancloud.android:avoscloud-sdk:v3.+' compile 'cn.leancloud.android:avoscloud-statistics:v3.+' compile 'com.squareup.picasso:picasso:2.5.2' compile 'com.android.support:recyclerview-v7:24.0.0' compile 'com.android.support:cardview-v7:24.0.0' compile 'com.android.support.constraint:constraint-layout:1.0.2' compile 'com.android.support:support-v4:24.0.0-alpha1' compile 'com.android.support:support-annotations:24.0.0-alpha1' } ```

org.json.JSONException:值为10的java.lang.String类型的电子邮件无法转换为JSONObject

<div class="post-text" itemprop="text"> <p>i have a signup form which takes the username,email,password and mobile using json php and store them in php..but at runtime it is iving followin error.</p> <blockquote> <p>org.json.JSONException: Value Email Already Exist at 0 of type java.lang.String cannot be converted to JSONObject W/System.err:<br> at org.json.JSON.typeMismatch(JSON.java:100)</p> </blockquote> <p>my sinup.java is:</p> <pre><code> package com.breera.automechanic_storeapp; import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; import com.android.volley.Request; import com.android.volley.RequestQueue; import com.android.volley.Response; import com.android.volley.VolleyError; import com.android.volley.toolbox.JsonObjectRequest; import com.android.volley.toolbox.Volley; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; public class Signup extends AppCompatActivity { private RequestQueue mQueue; EditText cusname,cusemail,cuspass,cusmobile,confrmpass; String cus_name,cus_email,cus_pass,cus_cnfrmPass,cus_mobile; Button btnlogin,btnSignup; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_signup); cusname=findViewById(R.id.fn); cusemail=findViewById(R.id.cusemail); cuspass=findViewById(R.id.cuspass); cusmobile=findViewById(R.id.cusmobile); confrmpass=findViewById(R.id.confrmpass); btnlogin=(Button)findViewById(R.id.logbtn); btnSignup=findViewById(R.id.signup); mQueue = Volley.newRequestQueue(this); btnlogin.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent intnt=new Intent(Signup.this,CusLogin.class); startActivity(intnt); } }); btnSignup.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // Toast.makeText(Signup.this, "hhh", Toast.LENGTH_SHORT).show(); onsignup(); } }); }public void onsignup(){ cus_name = cusname.getText().toString(); cus_email = cusemail.getText().toString(); cus_pass = cuspass.getText().toString(); cus_cnfrmPass=confrmpass.getText().toString(); cus_mobile = cusmobile.getText().toString(); try { UrlPassClasa urlPassClasa=new UrlPassClasa("customer/signup.php?name=" + cus_name +"&amp;email=" + cus_email+ "&amp;userpass=" + cus_pass+ "&amp;cus_mobile=" + cus_mobile); JsonObjectRequest request = new JsonObjectRequest(Request.Method.GET, urlPassClasa.getUrl(), null, new Response.Listener&lt;JSONObject&gt;() { @Override public void onResponse(JSONObject response) { try { JSONArray jsonArray = response.getJSONArray("Signup"); JSONObject signup = jsonArray.getJSONObject(0); int signupStatus = signup.getInt("status"); // String signupmsg = signup.getString("msg"); if (signupStatus == 1) { Toast.makeText(Signup.this, "han", Toast.LENGTH_SHORT).show(); } else { Toast.makeText(Signup.this, "Failed", Toast.LENGTH_LONG).show(); } } catch (JSONException e) { e.printStackTrace(); } catch (Exception e) { Toast.makeText(Signup.this, "Error", Toast.LENGTH_LONG).show(); } } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { error.printStackTrace(); } }); mQueue.add(request); }//1st try catch (Exception e) { Toast.makeText(Signup.this, e.getMessage(), Toast.LENGTH_LONG).show(); } }//end mthd } </code></pre> <p>activity_signup.xml:</p> <pre><code>&lt;?xml version="1.0" encoding="utf-8"?&gt; &lt;LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:background="@drawable/bck" tools:context=".Signup"&gt; &lt;TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Rider's Signup" android:textSize="36sp" android:layout_marginTop="5dp" android:textColor="#fff" android:gravity="center" android:textStyle="bold" android:fontFamily="cursive"/&gt; &lt;ScrollView android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:background="@drawable/bck" android:layout_marginTop="0dp" android:layout_marginLeft="10dp" android:layout_marginBottom="15dp" android:scrollbarAlwaysDrawVerticalTrack="true" android:layout_marginRight="10dp"&gt; &lt;LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:layout_marginLeft="15dp" android:layout_marginRight="15dp" android:layout_marginTop="10dp" android:layout_marginBottom="10dp" android:background="#fff" android:elevation="4dp" android:padding="10dp"&gt; &lt;android.support.design.widget.TextInputLayout android:id="@+id/input_layout_fn" android:layout_width="match_parent" android:layout_marginTop="0dp" android:layout_height="wrap_content" &gt; &lt;EditText android:id="@+id/fn" android:layout_width="fill_parent" android:layout_height="wrap_content" android:drawableLeft="@drawable/ic_people_black_24dp" android:hint="Name" android:inputType="text" android:singleLine="true" /&gt; &lt;/android.support.design.widget.TextInputLayout&gt; &lt;android.support.design.widget.TextInputLayout android:id="@+id/input_layout_email" android:layout_width="match_parent" android:layout_height="wrap_content"&gt; &lt;EditText android:id="@+id/cusemail" android:layout_width="fill_parent" android:layout_height="wrap_content" android:drawableLeft="@drawable/ic_email_black_24dp" android:singleLine="true" android:hint="Mail Address" android:inputType="textEmailAddress" /&gt; &lt;/android.support.design.widget.TextInputLayout&gt; &lt;android.support.design.widget.TextInputLayout android:id="@+id/input_layout_password" android:layout_width="match_parent" android:layout_height="wrap_content"&gt; &lt;EditText android:id="@+id/cuspass" android:layout_width="fill_parent" android:layout_height="wrap_content" android:drawableLeft="@drawable/ic_lock_black_24dp" android:drawableTint="@color/colorPrimaryDark" android:singleLine="true" android:hint="Password" android:inputType="numberPassword" /&gt; &lt;/android.support.design.widget.TextInputLayout&gt; &lt;android.support.design.widget.TextInputLayout android:layout_width="match_parent" android:layout_height="wrap_content"&gt; &lt;EditText android:id="@+id/confrmpass" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="16dp" android:singleLine="true" android:drawableLeft="@drawable/ic_lock_open_black_24dp" android:hint=" Confirm Password" android:inputType="numberPassword" /&gt; &lt;/android.support.design.widget.TextInputLayout&gt; &lt;android.support.design.widget.TextInputLayout android:layout_width="match_parent" android:layout_height="wrap_content"&gt; &lt;EditText android:id="@+id/cusmobile" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="16dp" android:singleLine="true" android:drawableLeft="@drawable/ic_phone_android_black_24dp" android:hint=" Mobile No" android:inputType="numberPassword" /&gt; &lt;/android.support.design.widget.TextInputLayout&gt; &lt;Button android:id="@+id/logbtn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@null" android:textAllCaps="false" android:layout_gravity="right" android:textColor="@color/colorPrimaryDark" android:text="Already an account.Login" /&gt; &lt;Button android:id="@+id/signup" android:layout_width="fill_parent" android:layout_height="40dp" android:layout_margin="5dp" android:background="@drawable/bck" android:text="Sign up" android:textAllCaps="false" android:textColor="#fff" android:textSize="18sp" /&gt; &lt;/LinearLayout&gt; &lt;/ScrollView&gt; &lt;/LinearLayout&gt; </code></pre> <p>signup.php:</p> <pre><code>&lt;?php require_once("../includes/db.php"); require_once("../includes/functions.php"); $response["Signup"] = array(); $name = $_REQUEST["name"]; $email = $_REQUEST["email"]; $userpass = $_REQUEST["userpass"]; $phone = $_REQUEST["cus_mobile"]; //$name = "zain"; //$email = "zain@gmail.com"; //$userpass = "123"; //$phone = "123456"; $msg = array(); if (check_customer_email($con, $email)) { $msg["status"] = 0; $msg["msg"] = "Email Already Exist"; array_push($response["Signup"], $msg["msg"]); } else { $sql = "insert into customer(cus_name, cust_email, cust_userpass,cus_mobile) values ('$name', '$email', '$userpass','$phone')"; if(mysqli_query($con, $sql)) { $msg["status"] = 1; $msg["msg"] = "Values successfully Added"; array_push($response["Signup"], $msg["msg"]); } else { $msg["status"] = 0; array_push($response["Signup"], $msg["status"]); } } echo json_encode($response); ?&gt; </code></pre> <p>UrlPassClasa.java:</p> <pre><code>package com.breera.automechanic_storeapp; public class UrlPassClasa { String Url="http://192.168.0.107/auto_mechanic/"; public UrlPassClasa(String file) { Url=Url+file; } public String getUrl(){ return Url; } } </code></pre> <p>database:<a href="https://i.stack.imgur.com/jPhYQ.png" rel="nofollow noreferrer">enter image description here</a></p> </div>

定量遥感中文版 梁顺林著 范闻捷译

这是梁顺林的定量遥感的中文版,由范闻捷等翻译的,是电子版PDF,解决了大家看英文费时费事的问题,希望大家下载看看,一定会有帮助的

Java 最常见的 200+ 面试题:面试必备

这份面试清单是从我 2015 年做了 TeamLeader 之后开始收集的,一方面是给公司招聘用,另一方面是想用它来挖掘在 Java 技术栈中,还有那些知识点是我不知道的,我想找到这些技术盲点,然后修复它,以此来提高自己的技术水平。虽然我是从 2009 年就开始参加编程工作了,但我依旧觉得自己现在要学的东西很多,并且学习这些知识,让我很有成就感和满足感,那所以何乐而不为呢? 说回面试的事,这份面试...

机器学习初学者必会的案例精讲

通过六个实际的编码项目,带领同学入门人工智能。这些项目涉及机器学习(回归,分类,聚类),深度学习(神经网络),底层数学算法,Weka数据挖掘,利用Git开源项目实战等。

远程工具,免费

远程工具,免费

java jdk 8 帮助文档 中文 文档 chm 谷歌翻译

JDK1.8 API 中文谷歌翻译版 java帮助文档 JDK API java 帮助文档 谷歌翻译 JDK1.8 API 中文 谷歌翻译版 java帮助文档 Java最新帮助文档 本帮助文档是使用谷

csma/ca和csma/cd的matlab仿真源代码带有详细的注释

csma/ca和csma/cd的matlab仿真源代码带有详细的注释,载波侦听,随意设置节点数,带有炫酷的图形展示效果。

Java基础知识面试题(2020最新版)

文章目录Java概述何为编程什么是Javajdk1.5之后的三大版本JVM、JRE和JDK的关系什么是跨平台性?原理是什么Java语言有哪些特点什么是字节码?采用字节码的最大好处是什么什么是Java程序的主类?应用程序和小程序的主类有何不同?Java应用程序与小程序之间有那些差别?Java和C++的区别Oracle JDK 和 OpenJDK 的对比基础语法数据类型Java有哪些数据类型switc...

软件测试入门、SQL、性能测试、测试管理工具

软件测试2小时入门,让您快速了解软件测试基本知识,有系统的了解; SQL一小时,让您快速理解和掌握SQL基本语法 jmeter性能测试 ,让您快速了解主流来源性能测试工具jmeter 测试管理工具-禅道,让您快速学会禅道的使用,学会测试项目、用例、缺陷的管理、

pokemmo的资源

pokemmo必须的4个rom 分别为绿宝石 火红 心金 黑白 还有汉化补丁 资源不错哦 记得下载

三个项目玩转深度学习(附1G源码)

从事大数据与人工智能开发与实践约十年,钱老师亲自见证了大数据行业的发展与人工智能的从冷到热。事实证明,计算机技术的发展,算力突破,海量数据,机器人技术等,开启了第四次工业革命的序章。深度学习图像分类一直是人工智能的经典任务,是智慧零售、安防、无人驾驶等机器视觉应用领域的核心技术之一,掌握图像分类技术是机器视觉学习的重中之重。针对现有线上学习的特点与实际需求,我们开发了人工智能案例实战系列课程。打造:以项目案例实践为驱动的课程学习方式,覆盖了智能零售,智慧交通等常见领域,通过基础学习、项目案例实践、社群答疑,三维立体的方式,打造最好的学习效果。

无线通信中的智能天线:IS-95和第3代CDMA应用_.pdf

无线通信中的智能天线:IS-95和第3代CDMA应用_.pdf

设计模式(JAVA语言实现)--20种设计模式附带源码

课程亮点: 课程培训详细的笔记以及实例代码,让学员开始掌握设计模式知识点 课程内容: 工厂模式、桥接模式、组合模式、装饰器模式、外观模式、享元模式、原型模型、代理模式、单例模式、适配器模式 策略模式、模板方法模式、观察者模式、迭代器模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式 课程特色: 笔记设计模式,用笔记串连所有知识点,让学员从一点一滴积累,学习过程无压力 笔记标题采用关键字标识法,帮助学员更加容易记住知识点 笔记以超链接形式让知识点关联起来,形式知识体系 采用先概念后实例再应用方式,知识点深入浅出 提供授课内容笔记作为课后复习以及工作备查工具 部分图表(电脑PC端查看):

Java8零基础入门视频教程

这门课程基于主流的java8平台,由浅入深的详细讲解了java SE的开发技术,可以使java方向的入门学员,快速扎实的掌握java开发技术!

玩转Linux:常用命令实例指南

人工智能、物联网、大数据时代,Linux正有着一统天下的趋势,几乎每个程序员岗位,都要求掌握Linux。本课程零基础也能轻松入门。 本课程以简洁易懂的语言手把手教你系统掌握日常所需的Linux知识,每个知识点都会配合案例实战让你融汇贯通。课程通俗易懂,简洁流畅,适合0基础以及对Linux掌握不熟练的人学习; 【限时福利】 1)购课后按提示添加小助手,进答疑群,还可获得价值300元的编程大礼包! 2)本月购买此套餐加入老师答疑交流群,可参加老师的免费分享活动,学习最新技术项目经验。 --------------------------------------------------------------- 29元=掌握Linux必修知识+社群答疑+讲师社群分享会+700元编程礼包。 &nbsp;

极简JAVA学习营第四期(报名以后加助教微信:eduxy-1)

想学好JAVA必须要报两万的培训班吗? Java大神勿入 如果你: 零基础想学JAVA却不知道从何入手 看了一堆书和视频却还是连JAVA的环境都搭建不起来 囊中羞涩面对两万起的JAVA培训班不忍直视 在职没有每天大块的时间专门学习JAVA 那么恭喜你找到组织了,在这里有: 1. 一群志同道合立志学好JAVA的同学一起学习讨论JAVA 2. 灵活机动的学习时间完成特定学习任务+每日编程实战练习 3. 热心助人的助教和讲师及时帮你解决问题,不按时完成作业小心助教老师的家访哦 上一张图看看前辈的感悟: &nbsp; &nbsp; 大家一定迫不及待想知道什么是极简JAVA学习营了吧,下面就来给大家说道说道: 什么是极简JAVA学习营? 1. 针对Java小白或者初级Java学习者; 2. 利用9天时间,每天1个小时时间; 3.通过 每日作业 / 组队PK / 助教答疑 / 实战编程 / 项目答辩 / 社群讨论 / 趣味知识抢答等方式让学员爱上学习编程 , 最终实现能独立开发一个基于控制台的‘库存管理系统’ 的学习模式 极简JAVA学习营是怎么学习的? &nbsp; 如何报名? 只要购买了极简JAVA一:JAVA入门就算报名成功! &nbsp;本期为第四期极简JAVA学习营,我们来看看往期学员的学习状态: 作业看这里~ &nbsp; 助教的作业报告是不是很专业 不交作业打屁屁 助教答疑是不是很用心 &nbsp; 有奖抢答大家玩的很嗨啊 &nbsp; &nbsp; 项目答辩终于开始啦 &nbsp; 优秀者的获奖感言 &nbsp; 这是答辩项目的效果 &nbsp; &nbsp; 这么细致的服务,这么好的氛围,这样的学习效果,需要多少钱呢? 不要1999,不要199,不要99,只要9.9 是的你没听错,只要9.9以上所有就都属于你了 如果你: 1、&nbsp;想学JAVA没有基础 2、&nbsp;想学JAVA没有整块的时间 3、&nbsp;想学JAVA没有足够的预算 还等什么?赶紧报名吧,抓紧抢位,本期只招300人,错过只有等时间待定的下一期了 &nbsp; 报名请加小助手微信:eduxy-1 &nbsp; &nbsp;

Python数据清洗实战入门

本次课程主要以真实的电商数据为基础,通过Python详细的介绍了数据分析中的数据清洗阶段各种技巧和方法。

董付国老师Python全栈学习优惠套餐

购买套餐的朋友可以关注微信公众号“Python小屋”,上传付款截图,然后领取董老师任意图书1本。

linux下利用/proc进行进程树的打印

在linux下利用c语言实现的进程树的打印,主要通过/proc下的目录中的进程文件,获取status中的进程信息内容,然后利用递归实现进程树的打印

MySQL数据库面试题(2020最新版)

文章目录数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别?数据类型mysql有哪些数据类型引擎MySQL存储引擎MyISAM与InnoDB区别MyISAM索引与InnoDB索引的区别?InnoDB引擎的4大特性存储引擎选择索引什么是索引?索引有哪些优缺点?索引使用场景(重点)...

HoloLens2开发入门教程

本课程为HoloLens2开发入门教程,讲解部署开发环境,安装VS2019,Unity版本,Windows SDK,创建Unity项目,讲解如何使用MRTK,编辑器模拟手势交互,打包VS工程并编译部署应用到HoloLens上等。

150讲轻松搞定Python网络爬虫

【为什么学爬虫?】 &nbsp; &nbsp; &nbsp; &nbsp;1、爬虫入手容易,但是深入较难,如何写出高效率的爬虫,如何写出灵活性高可扩展的爬虫都是一项技术活。另外在爬虫过程中,经常容易遇到被反爬虫,比如字体反爬、IP识别、验证码等,如何层层攻克难点拿到想要的数据,这门课程,你都能学到! &nbsp; &nbsp; &nbsp; &nbsp;2、如果是作为一个其他行业的开发者,比如app开发,web开发,学习爬虫能让你加强对技术的认知,能够开发出更加安全的软件和网站 【课程设计】 一个完整的爬虫程序,无论大小,总体来说可以分成三个步骤,分别是: 网络请求:模拟浏览器的行为从网上抓取数据。 数据解析:将请求下来的数据进行过滤,提取我们想要的数据。 数据存储:将提取到的数据存储到硬盘或者内存中。比如用mysql数据库或者redis等。 那么本课程也是按照这几个步骤循序渐进的进行讲解,带领学生完整的掌握每个步骤的技术。另外,因为爬虫的多样性,在爬取的过程中可能会发生被反爬、效率低下等。因此我们又增加了两个章节用来提高爬虫程序的灵活性,分别是: 爬虫进阶:包括IP代理,多线程爬虫,图形验证码识别、JS加密解密、动态网页爬虫、字体反爬识别等。 Scrapy和分布式爬虫:Scrapy框架、Scrapy-redis组件、分布式爬虫等。 通过爬虫进阶的知识点我们能应付大量的反爬网站,而Scrapy框架作为一个专业的爬虫框架,使用他可以快速提高我们编写爬虫程序的效率和速度。另外如果一台机器不能满足你的需求,我们可以用分布式爬虫让多台机器帮助你快速爬取数据。 &nbsp; 从基础爬虫到商业化应用爬虫,本套课程满足您的所有需求! 【课程服务】 专属付费社群+每周三讨论会+1v1答疑

MySQL 8.0.19安装教程(windows 64位)

话不多说直接开干 目录 1-先去官网下载点击的MySQL的下载​ 2-配置初始化的my.ini文件的文件 3-初始化MySQL 4-安装MySQL服务 + 启动MySQL 服务 5-连接MySQL + 修改密码 先去官网下载点击的MySQL的下载 下载完成后解压 解压完是这个样子 配置初始化的my.ini文件的文件 ...

Python数据挖掘简易入门

&nbsp; &nbsp; &nbsp; &nbsp; 本课程为Python数据挖掘方向的入门课程,课程主要以真实数据为基础,详细介绍数据挖掘入门的流程和使用Python实现pandas与numpy在数据挖掘方向的运用,并深入学习如何运用scikit-learn调用常用的数据挖掘算法解决数据挖掘问题,为进一步深入学习数据挖掘打下扎实的基础。

深度学习原理+项目实战+算法详解+主流框架(套餐)

深度学习系列课程从深度学习基础知识点开始讲解一步步进入神经网络的世界再到卷积和递归神经网络,详解各大经典网络架构。实战部分选择当下最火爆深度学习框架PyTorch与Tensorflow/Keras,全程实战演示框架核心使用与建模方法。项目实战部分选择计算机视觉与自然语言处理领域经典项目,从零开始详解算法原理,debug模式逐行代码解读。适合准备就业和转行的同学们加入学习! 建议按照下列课程顺序来进行学习 (1)掌握深度学习必备经典网络架构 (2)深度框架实战方法 (3)计算机视觉与自然语言处理项目实战。(按照课程排列顺序即可)

网络工程师小白入门--【思科CCNA、华为HCNA等网络工程师认证】

本课程适合CCNA或HCNA网络小白同志,高手请绕道,可以直接学习进价课程。通过本预科课程的学习,为学习网络工程师、思科CCNA、华为HCNA这些认证打下坚实的基础! 重要!思科认证2020年2月24日起,已启用新版认证和考试,包括题库都会更新,由于疫情原因,请关注官网和本地考点信息。题库网络上很容易下载到。

Ubuntu18.04安装教程

Ubuntu18.04.1安装一、准备工作1.下载Ubuntu18.04.1 LTS2.制作U盘启动盘3.准备 Ubuntu18.04.1 的硬盘空间二、安装Ubuntu18.04.1三、安装后的一些工作1.安装输入法2.更换软件源四、双系统如何卸载Ubuntu18.04.1新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列...

sql语句 异常 Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your

在我们开发的工程中,有时候会报 [Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ------ 这种异常 不用多想,肯定是我们的sql语句出现问题,下面...

西南交通大学新秀杯数学建模试题

题目比较难,如果符合大家的口味欢迎大家下载哈,提高你的思维想象能力

Windows版YOLOv4目标检测实战:训练自己的数据集

课程演示环境:Windows10; cuda 10.2; cudnn7.6.5; Python3.7; VisualStudio2019; OpenCV3.4 需要学习ubuntu系统上YOLOv4的同学请前往:《YOLOv4目标检测实战:训练自己的数据集》 课程链接:https://edu.csdn.net/course/detail/28745 YOLOv4来了!速度和精度双提升! 与 YOLOv3 相比,新版本的 AP (精度)和 FPS (每秒帧率)分别提高了 10% 和 12%。 YOLO系列是基于深度学习的端到端实时目标检测方法。本课程将手把手地教大家使用labelImg标注和使用YOLOv4训练自己的数据集。课程实战分为两个项目:单目标检测(足球目标检测)和多目标检测(足球和梅西同时检测)。 本课程的YOLOv4使用AlexyAB/darknet,在Windows系统上做项目演示。包括:安装软件环境、安装YOLOv4、标注自己的数据集、整理自己的数据集、修改配置文件、训练自己的数据集、测试训练出的网络模型、性能统计(mAP计算)和先验框聚类分析。还将介绍改善YOLOv4目标检测性能的技巧。 除本课程《Windows版YOLOv4目标检测实战:训练自己的数据集》外,本人将推出有关YOLOv4目标检测的系列课程。请持续关注该系列的其它视频课程,包括: 《Windows版YOLOv4目标检测实战:人脸口罩佩戴检测》 《Windows版YOLOv4目标检测实战:中国交通标志识别》 《Windows版YOLOv4目标检测:原理与源码解析》

Spring Boot -01- 快速入门篇(图文教程)

Spring Boot -01- 快速入门篇 今天开始不断整理 Spring Boot 2.0 版本学习笔记,大家可以在博客看到我的笔记,然后大家想看视频课程也可以到【慕课网】手机 app,去找【Spring Boot 2.0 深度实践】的课程,令人开心的是,课程完全免费! 什么是 Spring Boot? Spring Boot 是由 Pivotal 团队提供的全新框架。Spring Boot...

面试了一个 31 岁程序员,让我有所触动,30岁以上的程序员该何去何从?

最近面试了一个31岁8年经验的程序猿,让我有点感慨,大龄程序猿该何去何从。

C/C++学习指南全套教程

C/C++学习的全套教程,从基本语法,基本原理,到界面开发、网络开发、Linux开发、安全算法,应用尽用。由毕业于清华大学的业内人士执课,为C/C++编程爱好者的教程。

相关热词 c#中如何设置提交按钮 c#帮助怎么用 c# 读取合并单元格的值 c#带阻程序 c# 替换span内容 c# rpc c#控制台点阵字输出 c#do while循环 c#调用dll多线程 c#找出两个集合不同的
立即提问