Android Studio 主活动写第二个@Override的时候报错是为啥?

图片说明

Android Studio版本是2.2版本,代码来源于《第一行代码》

尝试方法

图片说明

尝试失败

2个回答

你这个重写的应该是view的点击监听事件吧~,在你的窗体上加上这个 implements View.OnClickListener

qq_32674353
峰崽er 回复qq_40835458: public class *** extends AppCompatActivity implements View.OnClickListener
一年多之前 回复
qq_32674353
峰崽er 回复qq_40835458: 不客气
一年多之前 回复
qq_40835458
qq_40835458 回复qq_40835458:好了,谢谢
一年多之前 回复
qq_40835458
qq_40835458 在哪儿添加,我的还是错的,,,
一年多之前 回复

public class MainActivity extends AppCompatActivity implements View.OnClickListener

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
【Android studio】程序不报错但是停止运行

按照网上的视频例子在敲,但是不知道问题出在哪里,基本没有基础可言,麻烦大神们给看看,万分感谢 ``` package com.example.pet; import android.os.Bundle; import android.widget.FrameLayout; import android.widget.RadioGroup; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentActivity; import androidx.fragment.app.FragmentTransaction; import com.example.pet.base.BaseFragment; import com.example.pet.collect.fragment.CollectFragment; import com.example.pet.community.fragment.CommunityFragment; import com.example.pet.home.fragment.HomeFragment; import com.example.pet.type.fragment.TypeFragment; import com.example.pet.user.fragment.UserFragment; import java.util.ArrayList; import butterknife.BindView; import butterknife.ButterKnife; public class MainActivity extends FragmentActivity { @BindView(R.id.frameLayout) FrameLayout frameLayout; @BindView(R.id.rg_main) RadioGroup rgMain; //装多个Fragment的实例集合 private ArrayList<BaseFragment> fragments; //选中的Fragment的对应的位置 private int position; //缓存的上次显示的Fragment private Fragment tempFragemnt; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //ButterKnife和当前Activity绑定,绑定后自动实例化 ButterKnife.bind(this); //初始化Fragment initFragment(); //设置RadioGroup的监听 initListener(); } private void initListener() { rgMain.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup group, int checkedId) { switch (checkedId) { case R.id.rb_home://主页 position = 0; break; case R.id.rb_type://分类 position = 1; break; case R.id.rb_community://发现 position = 2; break; case R.id.rb_collect://收藏 position = 3; break; case R.id.rb_user://个人中心 position = 4; break; default: position = 0; break; } //根据位置去取不同的Fragment BaseFragment baseFragment = getFragment(position); //第一个参数:上次显示的Fragment,第二个参数:当前正要显示的Fragment switchFragment(tempFragemnt, baseFragment); } }); //默认选中主页面 rgMain.check(R.id.rb_home); } //切换Fragment,隐藏上一个,显示当前 private void switchFragment(Fragment fromFragment, BaseFragment nextFragment) { if (tempFragemnt != nextFragment) { tempFragemnt = nextFragment; if (nextFragment != null) { FragmentTransaction transaction = getSupportFragmentManager().beginTransaction(); // 判断 nextFragment 是否添加 if (!nextFragment.isAdded()) { // 隐藏当前 Fragment if (fromFragment != null) { transaction.hide(fromFragment); } //添加Fragment transaction.add(R.id.frameLayout, nextFragment).commit(); } else { // 隐藏当前 Fragment if (fromFragment != null) { transaction.hide(fromFragment); } transaction.show(nextFragment).commit(); } } } } private BaseFragment getFragment(int position) { if (fragments != null && fragments.size() > 0) { BaseFragment baseFragment = fragments.get(position); return baseFragment; } return null; } //添加的时候要按照顺序 private void initFragment() { fragments = new ArrayList<>(); fragments.add(new HomeFragment()); fragments.add(new TypeFragment()); fragments.add(new CommunityFragment()); fragments.add(new CollectFragment()); fragments.add(new UserFragment()); } } ``` 附上logcat ![图片说明](https://img-ask.csdn.net/upload/202004/19/1587281909_919389.png)![图片说明](https://img-ask.csdn.net/upload/202004/19/1587281920_250438.png)

使用Android studio编写的程序,写好代码后运行app到模拟器的时候会闪退

希望懂的大佬能帮帮忙,救救我,这个问题困扰我好久了,这个问题没解决就无法进行下一步。 1.最近使用Android studio编写了一个程序,写好代码后运行app到模拟器的时候会闪退(创建时程序版本和模拟器版本相同为5.1)。没有写代码时(也就是刚创建好程序,没添加任何东西时),在模拟器中能正常运行,但是当我写好代码后,运行app到模拟器上就会闪退了。 2.在代码部分,我是根据的SuperMap iMobile 9D(2019) for Android Guide的指导书写的,现在我也配置了许可,但还是会闪退 3.各个部分的代码如下: ``` <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.loadscence"> <uses-permission android:name="android.permission.INTERNET"></uses-permission> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"></uses-permission> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission> <uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name=".MainActivity" android:label="@string/app_name" android:configChanges="keyboardHidden|orientation|screenSize" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> <supports-screens android:largeScreens="true" android:resizeable="true" android:normalScreens="true" android:anyDensity="true"/> </manifest> ///////////////////////////////////////////////////////////这是mainactivity.java的代码 package com.example.loadscence; import androidx.appcompat.app.AppCompatActivity; import android.view.Menu; import android.view.MenuItem; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.ZoomControls; import com.supermap.data.Environment; import com.supermap.data.Workspace; import com.supermap.data.WorkspaceConnectionInfo; import com.supermap.data.WorkspaceType; import com.supermap.mapping.MapControl; import com.supermap.mapping.MapView; public class MainActivity extends AppCompatActivity { private MapControl m_mapcontrol = null; private Workspace m_workspace; private MapView m_mapView; private ZoomControls m_zoom; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //设置一些系统需要用到的路径 String rootPath = android.os.Environment.getExternalStorageDirectory().getAbsolutePath(); Environment. setLicensePath (rootPath + "/SuperMap/license/"); Environment. setTemporaryPath (rootPath + "/SuperMap/temp/"); Environment. setWebCacheDirectory (rootPath + "/SuperMap/WebCatch"); //组件功能必须在 Environment 初始化之后才能调用 Environment. initialization (this); //如果机器中默认不包括需要显示的字体,可以把相关字体文件放在参数所代表的路径中。 //例如,如果需要显示阿拉伯文字(若机器中原先不包括相关字体文件),可以把需要的字体文件放在参数所代表的路径中。 Environment. setFontsPath (rootPath + "/SuperMap/fonts/"); setContentView(R.layout. activity_main ); //打开工作空间 m_workspace = new Workspace(); WorkspaceConnectionInfo info = new WorkspaceConnectionInfo(); info.setServer(rootPath + "/SampleData/GeometryInfo/World.smwu"); info.setType(WorkspaceType. SMWU ); m_workspace.open(info); //将地图显示控件和工作空间关联 m_mapView = (MapView)findViewById(R.id. Map_view ); m_mapcontrol = m_mapView.getMapControl(); m_mapcontrol.getMap().setWorkspace(m_workspace); //打开工作空间中的第二幅地图 String mapName = m_workspace.getMaps().get(1); m_mapcontrol.getMap().open(mapName); m_zoom = (ZoomControls)findViewById(R.id. zoomControls1 ); m_mapView = (MapView)findViewById(R.id. Map_view ); m_zoom.setIsZoomInEnabled(true); m_zoom.setIsZoomOutEnabled(true); //放大按钮 m_zoom.setOnZoomInClickListener(new OnClickListener() { public void onClick(View v) { m_mapcontrol.getMap().zoom(2); m_mapcontrol.getMap().refresh(); } }); //缩小按钮 m_zoom.setOnZoomOutClickListener(new OnClickListener(){ public void onClick(View v) { m_mapcontrol.getMap().zoom(0.5); m_mapcontrol.getMap().refresh(); } }); m_mapcontrol.getMap().refresh(); } } ///////////////////////////////////////////////////////////这是activity的代码 <?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.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=".MainActivity"> <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:id="@+id/main"> <RelativeLayout android:gravity="left" android:layout_width="match_parent" android:layout_height="match_parent"> <com.supermap.mapping.MapView android:id = "@+id/Map_view" android:layout_width="match_parent" android:layout_height = "match_parent"> </com.supermap.mapping.MapView> <ZoomControls android:id="@+id/zoomControls1" android:layout_alignParentBottom="true" android:layout_alignParentRight="true" android:layout_centerHorizontal="true" android:layout_width="wrap_content" android:layout_height="wrap_content"> </ZoomControls> </RelativeLayout> </RelativeLayout> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" /> </androidx.constraintlayout.widget.ConstraintLayout> ///////////////////////////////////////////////////////////报错日志如下: 03-23 22:32:10.438 22856-22856/com.example.loadscence E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.loadscence, PID: 22856 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.loadscence/com.example.loadscence.MainActivity}: java.lang.NullPointerException: Attempt to get length of null array at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387) 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:5254) 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.NullPointerException: Attempt to get length of null array at com.supermap.data.Environment.checkAndLoadLibrary64(Environment.java:1632) at com.supermap.data.Environment.initialization(Environment.java:576) at com.example.loadscence.MainActivity.onCreate(MainActivity.java:33) 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:2387)  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:5254)  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 Studio 中Button控件的问题

目前在参考《第一行代码Android 第二版》 看到书中 第2.2.4节 在活动中使用Toast 其中我在写码Button的时候我的AS会报错 ![图片说明](https://img-ask.csdn.net/upload/201910/13/1570978836_981403.png) 附MainActivity.kt的代码 ``` package com.example.myapplication import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.view.View import android.widget.Button import android.widget.Toast class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState); setContentView(R.layout.first_layout); Button button_1 = (Button) findViewById(R.id.button_1); button1 .setOnClickListener(new View.onClickListener) { @Override public void onClick(View v){ Toast.makeText(MainActivity.this,"You Clcke Button 1",Toast.LENGTH_SHORT).show(); } }; } } ``` 谢谢@王能指出代码没贴出来 此上为问题代码![图片说明](https://img-ask.csdn.net/upload/201910/15/1571136452_474511.png)

Android studio写AIDL时报错:Execution failed for task,

我用的是Android Studio 1.4 ![图片说明](https://img-ask.csdn.net/upload/201604/20/1461137087_410343.png) ![图片说明](https://img-ask.csdn.net/upload/201604/20/1461137380_344758.png) 第二张图compile sdk version那里只能选api level 23. 在aidl包下我写了2个aidl文件,另外MainActivity那个包中的MyParcelClass,这3个和aidl有关。下面贴下代码: MyParcelClass.java ``` public class MyParcelableClass implements Parcelable { private int id; private String str; public MyParcelableClass(int id,String str) { this.id=id; this.str=str; } @Override public int describeContents() { return 0; } @Override public void writeToParcel(Parcel out,int flags) { out.writeInt(id); out.writeString(str); } private MyParcelableClass(Parcel in) { id=in.readInt(); str=in.readString(); } public static final Parcelable.Creator<MyParcelableClass> CREATOR=new Parcelable.Creator<MyParcelableClass>() { @Override public MyParcelableClass[] newArray(int size) { return new MyParcelableClass[size]; } public MyParcelableClass createFromParcel(Parcel in) { return new MyParcelableClass(in); } }; } ``` MyParcelClass.aidl: ``` package com.example.dell_pc.aldl; parcelable MyParcelableClass; ``` IMyParcelManager.aidl: ``` package com.example.dell_pc.aldl.aidl; import com.example.dell_pc.aldl.MyParcelableClass; // Declare any non-default types here with import statements interface IMyParcelManager { /** * Demonstrates some basic types that you can use as parameters * and return values in AIDL. */ void basicTypes(int anInt, long aLong, boolean aBoolean, float aFloat, double aDouble, String aString); void add(in MyParcelableClass mMyParcelableClass); MyParcelableClass get(); } ``` 与aidl有关的3个文件的代码如上,报这个错误好像是Android Studio不会自动生成IMyParcelmanager.java?但是我build,然后make project后就是这个样子,求解决方法,网上搜索的方法都不行

求求大佬救命,弄了几天不对,我自学的第一行代码,用Androidstudio 3.6.2

``` public class MainActivity extends AppCompatActivity { private EditText edit; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); edit=(EditText)findViewById(R.id.edit); } protected void onDestroy(){ super.onDestroy(); String inputText=edit.getText().toString(); save(inputText); } public void save(String inputText){ FileOutputStream out=null; BufferedWriter writer=null; try{ out=openFileOutput("data", Context.MODE_PRIVATE); writer=new BufferedWriter(new OutputStreamWriter(out)); writer.write(inputText); }catch (IOException e){ e.printStackTrace(); }finally { try{ if(writer!=null){ writer.close(); } }catch (IOException e){ e.printStackTrace(); } } } } ```

在Android Studio中读取创建的data.txt内部存储数据具体应该怎么写代码,有人帮忙看一下吗,我一直都会报错

public class WriteActivity extends AppCompatActivity { private Button save; private EditText etwrite; private TextView show; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_write); save = (Button) findViewById(R.id.save); etwrite = (EditText) findViewById(R.id.et_write); show = (TextView) findViewById(R.id.tv_show); save.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { //show.setText(write.getText().toString()); String write = etwrite.getText().toString().trim(); //public void save(String EditText){//inputText为传入的要保存的数据 FileOutputStream out = null; BufferedWriter writer = null; try { out = openFileOutput("data", Context.MODE_APPEND);//"data"为文件名,第二个参数为文件操作模式:文件已经存在,就往文件里面追加类容,不从新创建文件。 writer = new BufferedWriter(new OutputStreamWriter(out)); writer.write(write); } catch (IOException e) { e.printStackTrace(); } finally { try { if (writer != null) { writer.close(); } } catch (IOException e) { e.printStackTrace(); } } // } //读取数据 } }); } }

安卓运行报错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的一个简单问题,本人小白,解决不了了,求大神帮助!!!

# mainactivity ``` package com.example.rasberrypi; import android.annotation.SuppressLint; import android.app.Activity; import android.app.Notification; import android.app.NotificationManager; import android.app.PendingIntent; import android.content.Context; import android.content.Intent; import android.os.Build; import android.os.Handler; import android.os.Message; import android.support.annotation.RequiresApi; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.widget.TextView; import org.json.JSONException; import org.json.JSONObject; import java.util.TimerTask; public class MainActivity extends Activity { private Handler mHandler; private TextView fire, people; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mHandler = new Handler(); mHandler.post(new TimerProcess()); fire = findViewById(R.id.fire); people = findViewById(R.id.people); } @SuppressLint("HandlerLeak") final Handler handler = new Handler(){ @Override public void handleMessage(Message msg) { String ret = msg.obj.toString(); switch (msg.what){ case 1: StringBuilder builder = new StringBuilder(); JSONObject jsonObject = null; try { jsonObject = new JSONObject(ret); Log.i("json", ""+jsonObject); if (jsonObject.getInt("isFire") == 0) { fire.setText("没有发现火焰"); fire.setTextColor(android.graphics.Color.GREEN); } else { fire.setText("发现火焰"); fire.setTextColor(android.graphics.Color.RED); mes("火焰传感器探测到火焰!"); } if (jsonObject.getInt("isInvaded") == 0) { people.setText("安全"); people.setTextColor(android.graphics.Color.GREEN); } else { people.setText("发现入侵者"); people.setTextColor(android.graphics.Color.RED); mes("发现有人进入房间!"); } } catch (JSONException e) { e.printStackTrace(); } break; default: break; } } }; private void getDevInformation(){ new Thread(new Runnable() { @Override public void run() { String ret = Webconn.getDev(); System.out.println("get return:"); System.out.println(ret); handler.sendMessage(handler.obtainMessage(1, ret)); } }).start(); } private class TimerProcess implements Runnable{ @Override public void run() { mHandler.postDelayed(this, 5000); getDevInformation(); } } private void mes(String m) { String ns = Context.NOTIFICATION_SERVICE; NotificationManager mNotificationManager = (NotificationManager) getSystemService(ns); Notification.Builder builder = new Notification.Builder(MainActivity.this); builder.setSmallIcon(R.mipmap.ic_launcher); //设置图标 builder.setTicker("显示第二个通知"); builder.setContentTitle("树莓派安防"); //设置标题 builder.setContentText(m); //消息内容 builder.setWhen(System.currentTimeMillis()); //发送时间 builder.setDefaults(Notification.DEFAULT_ALL); //设置默认的提示音,振动方式,灯光 builder.setAutoCancel(true);//打开程序后图标消失 /*空一句*/ Intent intent = new Intent(MainActivity.this,Activity.class); PendingIntent pendingIntent =PendingIntent.getActivity(MainActivity.this, 0, intent, 0); builder.setContentIntent(pendingIntent); Notification notification = builder.build(); mNotificationManager.notify(1, notification); } } ``` # webconn ``` package com.example.rasberrypi; import java.io.IOException; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; public class Webconn { public static String getDev(){ String url = "http://192.168.1.104:5000/state/"; try { URL url1 = new URL(url); HttpURLConnection urlConnection =(HttpURLConnection) url1.openConnection(); int code = urlConnection.getResponseCode(); if(code == 200){ String strResult = urlConnection.getResponseMessage(); System.out.println(strResult); return strResult; } } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return "null"; } } ``` # activity_main ``` <?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.rasberrypi.MainActivity"> <TextView android:id="@+id/fire" android:layout_width="297dp" android:layout_height="95dp" android:layout_marginEnd="8dp" android:layout_marginStart="8dp" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.135" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" app:layout_constraintVertical_bias="0.225" /> <TextView android:id="@+id/people" android:layout_width="300dp" android:layout_height="88dp" tools:ignore="MissingConstraints" tools:layout_editor_absoluteX="10dp" tools:layout_editor_absoluteY="236dp" /> </android.support.constraint.ConstraintLayout> ``` 这里是代码,但是我的运行结果是空白图 ![图片说明](https://img-ask.csdn.net/upload/201802/21/1519186237_346292.png) Android studio中说 mainactivity中间的 jsonObject = new JSONObject(ret); String ret = Webconn.getDev(); 和webconn中的 int code = urlConnection.getResponseCode(); 报错 192.168.1.104出来的内容是 ![图片说明](https://img-ask.csdn.net/upload/201802/21/1519186346_762454.png) 希望大神可以帮忙解决

当点击登录按钮时,软件闪退。

![图片说明](https://img-ask.csdn.net/upload/201904/15/1555306213_312374.png) 当密码不正确时,正常显示。 ![图片说明](https://img-ask.csdn.net/upload/201904/15/1555306037_226545.png) 当用户名密码正确时,点击登录按钮软件闪退。 ![图片说明](https://img-ask.csdn.net/upload/201904/15/1555306388_791750.png) 再次点击软件进入,显示欢迎页面然后闪退,不进入登录注册页面。 相关代码 private void login() { //1.获取输入的用户名和密码 final String loginName = et_login_name.getText().toString(); final String loginPwd = et_login_pwd.getText().toString(); //2.校验输入的用户名和密码登录 if (TextUtils.isEmpty(loginName) || TextUtils.isEmpty(loginPwd)){ Toast.makeText(LoginActivity.this,"输入的用户名或密码不能为空",Toast.LENGTH_SHORT).show(); return; } //登录逻辑处理 Model.getInstance().getGlobalThreadPool().execute(new Runnable() { @Override public void run() { // 去环信服务器登录 EMClient.getInstance().login(loginName, loginPwd, new EMCallBack() { //登陆成功后的处理 @Override public void onSuccess() { //对模型层数据的处理 Model.getInstance().loginSucess(); //保存用户账号信息到本地数据库 Model.getInstance().getUserAccountDao().addAccount(new UserInfo(loginName)); runOnUiThread(new Runnable() { @Override public void run() { // //提示登录成功 Toast.makeText(LoginActivity.this,"登录成功",Toast.LENGTH_SHORT).show(); //跳转到主页面 Intent intent = new Intent(LoginActivity.this, MainActivity.class); startActivity(intent); finish(); } }); } //登录失败的处理 @Override public void onError(int i, final String s) { //提示登录失败 runOnUiThread(new Runnable() { @Override public void run() { Toast.makeText(LoginActivity.this,"登陆失败"+s,Toast.LENGTH_SHORT).show(); } } }); ![图片说明](https://img-ask.csdn.net/upload/201904/16/1555397258_130979.jpg)

android下载图片过大导致报错

package tarena.day2801; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.util.EntityUtils; import android.os.AsyncTask; import android.os.Bundle; import android.app.Activity; import android.app.ProgressDialog; import android.graphics.Bitmap; import android.graphics.Bitmap.Config; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Matrix; import android.graphics.Paint; import android.util.DisplayMetrics; import android.view.Gravity; import android.view.Menu; import android.view.View; import android.view.ViewGroup.LayoutParams; import android.widget.Button; import android.widget.ImageView; import android.widget.LinearLayout; public class MainActivity extends Activity { private Button button; private ImageView img; private String image_Path = "http://2.javatl.sinaapp.com/images/51d8c1d77fed4.jpg"; private ProgressDialog dialog; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button = (Button) findViewById(R.id.button1); img = (ImageView) findViewById(R.id.imageView1); LinearLayout rl = (LinearLayout) findViewById(R.id.lr); ImageView img = new ImageView(this); DisplayMetrics dm = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(dm); int height = dm.heightPixels/3; int width = dm.widthPixels / 2; LayoutParams params = new LayoutParams(width, height); img.setLayoutParams(params); rl.setGravity(Gravity.CENTER); img.setImageResource(R.drawable.ic_launcher); dialog = new ProgressDialog(this); dialog.setTitle("提示信息"); dialog.setMessage("正在下载,请稍候..."); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View arg0) { // TODO Auto-generated method stub new MYTask().execute(image_Path); } }); } /** * 使用异步任务的规则: 1、申明的类继承AsyncTask 标注三个参数的类型 * 2、第一个参数表示要执行的任务,通常是网络的路径;第二个参数表示进度的刻度,第三个参数表示任务执行的返回结果 * * @author liende * */ public class MYTask extends AsyncTask<String, Void, Bitmap> { /** * 表示任务执行之前的操作 */ @Override protected void onPreExecute() { // TODO Auto-generated method stub super.onPreExecute(); dialog.show(); } /** * 主要是完成耗时的操作 */ @Override protected Bitmap doInBackground(String... arg0) { // TODO Auto-generated method stub // 使用网络连接类HttpClient类王城对网络数据的提取 HttpClient httpClient = new DefaultHttpClient(); HttpGet httpGet = new HttpGet(arg0[0]); Bitmap bitmap = null; try { HttpResponse httpResponse = httpClient.execute(httpGet); if (httpResponse.getStatusLine().getStatusCode() == 200) { HttpEntity httpEntity = httpResponse.getEntity(); byte[] data = EntityUtils.toByteArray(httpEntity); bitmap = BitmapFactory .decodeByteArray(data, 0, data.length); ## **//在这里调用压缩方法** bitmap = compressImage(bitmap); } } catch (Exception e) { // TODO: handle exception } return bitmap; } /** * 主要是更新UI的操作 */ @Override protected void onPostExecute(Bitmap bitmap) { // TODO Auto-generated method stub super.onPostExecute(bitmap); Bitmap bmcopy = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), bitmap.getConfig()); Paint paint = new Paint(); Canvas canvas = new Canvas(bmcopy); Matrix mt = new Matrix(); mt.setRotate(30, bmcopy.getWidth()/2, bmcopy.getHeight()/2); //mt.setScale(0.5f, 2); canvas.drawBitmap(bitmap, mt, paint); img.setImageBitmap(bmcopy); dialog.dismiss(); } } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } ** //图片压缩方法** private Bitmap compressImage(Bitmap image) { ByteArrayOutputStream baos = new ByteArrayOutputStream(); image.compress(Bitmap.CompressFormat.JPEG, 100, baos);//质量压缩方法,这里100表示不压缩,把压缩后的数据存放到baos中 int options = 100; while ( baos.toByteArray().length / 1024>100) { //循环判断如果压缩后图片是否大于100kb,大于继续压缩 baos.reset();//重置baos即清空baos image.compress(Bitmap.CompressFormat.JPEG, options, baos);//这里压缩options%,把压缩后的数据存放到baos中 options -= 10;//每次都减少10 } ByteArrayInputStream isBm = new ByteArrayInputStream(baos.toByteArray());//把压缩后的数据baos存放到ByteArrayInputStream中 Bitmap bitmap = BitmapFactory.decodeStream(isBm, null, null);//把ByteArrayInputStream数据生成图片 return bitmap; } } 明明调用了图片压缩方法,但是不知道为什么运行的时候还是崩溃

安卓点击按钮不能实现跳转 模拟器运行软件点按钮就闪退

点登录按钮就闪退![图片说明](https://img-ask.csdn.net/upload/201906/28/1561723660_759733.jpg) 下面是代码 ```package com.example.test; import android.app.Activity; import com.example.test.R; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Button; public class Denglu extends Activity { Button denglu,zhuche; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.denglu); denglu=(Button)findViewById(R.id.denglu); zhuche=(Button)findViewById(R.id.zhuche); denglu.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent=new Intent(Denglu.this,RegisterActivity.class); startActivity(intent); } }); zhuche.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //为了跳转到注册界面,并实现注册功能 Intent intent=new Intent(Denglu.this,LostFindActivity.class); startActivity(intent); finish(); } }); } } ``` 第二个 package com.example.test; import android.app.Activity; import com.example.test.R; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.Toast; public class LostFindActivity extends Activity { Button register; protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.zc); register =(Button)findViewById(R.id.register); register.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(LostFindActivity.this,RegisterActivity.class); startActivity(intent); Toast.makeText(LostFindActivity.this, "注册成功,跳转中", Toast.LENGTH_LONG).show(); finish(); } }); } } 第三个 package com.example.test; import com.example.test.MainActivity; import com.example.test.R; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.Toast; public class RegisterActivity extends Activity { Button denglu; protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.dl); denglu=(Button)findViewById(R.id.denglu); denglu.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(RegisterActivity.this,MainActivity.class); startActivity(intent); Toast.makeText(RegisterActivity.this, "登录成功,跳转中", Toast.LENGTH_LONG).show(); finish(); } }); } } 跳转不了 思路是先注册然后登陆 进主界面 下面是报错信息 ![图片说明](https://img-ask.csdn.net/upload/201906/28/1561724541_821567.jpg) 萌新一个 求各位大佬帮帮忙

请问Android放了AdView控件调试之后又删除了,再调试就一直闪退打不开是为什么?

如题,安卓初学者,没有什么复杂功能,只是拖上去又删掉了 ``` <?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.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=".MainActivity"> <TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" app:layout_constraintVertical_bias="0.095" /> <RadioGroup android:id="@+id/radioGroup" android:layout_width="263dp" android:layout_height="131dp" android:layout_marginStart="72dp" android:layout_marginTop="104dp" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/textView2"> <RadioButton android:id="@+id/rbFirst" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="hh " /> <RadioButton android:id="@+id/rbSecond" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="hoho" /> <TextView android:id="@+id/textView" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/rgText" /> </RadioGroup> <Button android:id="@+id/btnOne" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="72dp" android:layout_marginTop="72dp" android:text="@string/txtBtnOne" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/radioGroup" /> <CheckBox android:id="@+id/checkBox2" android:layout_width="82dp" android:layout_height="31dp" android:layout_marginTop="40dp" android:layout_marginEnd="12dp" android:text="@string/txtcb2" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toBottomOf="@+id/checkBox" /> <CheckBox android:id="@+id/checkBox" android:layout_width="80dp" android:layout_height="33dp" android:layout_marginTop="56dp" android:layout_marginEnd="16dp" android:text="@string/txtcb1" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toBottomOf="@+id/radioGroup" app:layout_constraintVertical_bias="0.2" /> <CheckBox android:id="@+id/checkBox3" android:layout_width="81dp" android:layout_height="30dp" android:layout_marginTop="64dp" android:layout_marginEnd="16dp" android:layout_marginBottom="51dp" android:text="@string/txtcb3" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toBottomOf="@+id/checkBox2" app:layout_constraintVertical_bias="0.0" /> <com.google.android.gms.ads.AdView android:id="@+id/adView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="16dp" android:layout_marginBottom="16dp" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintStart_toStartOf="parent" /> </androidx.constraintlayout.widget.ConstraintLayout> ``` ``` class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) btnOne.setOnLongClickListener(View.OnLongClickListener { (it as Button).text = this.getString(R.string.txtBtnChanged) true }) btnOne.setOnClickListener(View.OnClickListener { click2Next() }) radioGroup.setOnCheckedChangeListener{ group, checkedId -> textView2.text = when(checkedId){ R.id.rbFirst -> "第一个" R.id.rbSecond -> "第二个" else ->"" } } checkBox.setOnCheckedChangeListener(myOnCheckChangedListener) checkBox2.setOnCheckedChangeListener(myOnCheckChangedListener) checkBox3.setOnCheckedChangeListener(myOnCheckChangedListener) } fun click2Next(){ intent = Intent(this,NextActivity::class.java).apply { putExtra("Label",btnOne.text) } this.startActivity(intent) } private val myOnCheckChangedListener = CompoundButton.OnCheckedChangeListener{ buttonView, isChecked ->when(buttonView.id){ R.id.checkBox -> { if(isChecked){ checkBox.text="Checked" } else { checkBox.text = this.getText(R.string.txtcb1) } } R.id.checkBox2 -> { val temp = buttonView.text if(isChecked){ checkBox2.text = "Checked" } else { checkBox2.text = this.getText(R.string.txtcb2) } } R.id.checkBox3 -> { val temp = buttonView.text if(isChecked){ checkBox3.text = "Checked" } else { checkBox3.text = this.getText(R.string.txtcb3) } } } } ```

Button onClick事件不能运行

我创建一个viewPager,在每一个页面上有三个布局。在第二个页面上我想处理按钮事件,当点击按钮时背景颜色会变。但是现在我的代码不能运行。去掉button代码,viewPager就可以正常运行。 这是我的代码: public class ViewPagerProjectActivity extends Activity implements OnClickListener{ Button btn; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); ViewPagerAdapter adapter = new ViewPagerAdapter( this ); ViewPager pager = (ViewPager)findViewById( R.id.viewpager ); pager.setAdapter( adapter ); pager.setCurrentItem(0); } public void OnClick(View v) { if(v.equals(btn)) { LinearLayout l = (LinearLayout) findViewById(R.id.deneme2); l.setBackgroundDrawable(getResources().getDrawable(R.drawable.background)); } } } 错误: E/AndroidRuntime(273): FATAL EXCEPTION: main E/AndroidRuntime(273): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.yahya.ViewPagerProject/com.yahya.ViewPagerProject.ViewPagerProjectActivity}: java.lang.ClassCastException: com.yahya.ViewPagerProject.ViewPagerProjectActivity E/AndroidRuntime(273): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663) E/AndroidRuntime(273): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) E/AndroidRuntime(273): at android.app.ActivityThread.access$2300(ActivityThread.java:125)

安卓开发 当返回之前的fragment 如何防止LiveData.observe()里的方程再次被触发?

最近刚学安卓开发,目前在使用mvvm模式进行开发。我发现LiveData有一个很有意思的属性: (https://developer.android.com/topic/libraries/architecture/livedata?hl=zh-cn) 通常,LiveData 仅在数据发生更改时才发送更新,并且仅发送给活跃观察者。此行为的一种例外情况是,观察者从非活跃状态更改为活跃状态时也会收到更新。此外,如果观察者第二次从非活跃状态更改为活跃状态,则只有在自上次变为活跃状态以来值发生了更改时,它才会收到更新。 这给我造成了些麻烦。比如说,当我返回上一个fragment时, 这个fragment会马上运行observe(),观察到的数据则是上一次运行得到的数据。我在观察方程里有关于view组建的reference。当观察方程立刻被触发时,有时候这些组件还没initialize完毕而造成npe。 我自己的例子是这样的:我有一个登陆的界面,用户按下登陆键view就会把记录下的用户名和密码(用一个searchEvent的类表示)传给viewmodel, viewmodel会把用Transformations.switchMap()来调用repository里的retrofit API同时view里有一个观察这个活动的方程。点击登陆登陆成功后,在那个fragment(我称之为fragment B)如果我按返回返回这个登陆界面,他会马上登陆成功,再次回到fragmentB里 请问该如何防止这种情况呢? 这是我viewmodel的代码: ``` public class LoginViewModel extends BaseViewModel<LoginRepository> { private final MutableLiveData<LoginEvent> loginEventMutableLiveData = new MutableLiveData<>(); private final LiveData<RemoteResponse<UserInfo>> remoteResponseMutableLiveData = Transformations .switchMap(loginEventMutableLiveData, repository::login); private final MutableLiveData<String> errMsgMutableLiveData = new MutableLiveData<>(); LoginViewModel(LoginRepository baseRepository) { super(baseRepository); } public LiveData<RemoteResponse<UserInfo>> getRemoteResponseMutableLiveData() { return remoteResponseMutableLiveData; } public MutableLiveData<String> getErrMsgMutableLiveData() { return errMsgMutableLiveData; } public void login(LoginEvent loginEvent) { if (Utils.isNullOrEmpty(loginEvent.userId)) { errMsgMutableLiveData.setValue("Please enter a valid password!"); return; } if (Utils.isNullOrEmpty(loginEvent.password)) { errMsgMutableLiveData.setValue("Please enter a valid password!"); return; } loginEventMutableLiveData.setValue(loginEvent); } } ``` 这是我loginfragment的代码: ``` public class LoginFragment extends BaseFragment<LoginViewModel, LoginRepository> { private LoginFragmentBinding binding; private NavigationManager navigationManager; @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { binding = LoginFragmentBinding.inflate(inflater, container, false); return binding.getRoot(); } @Override public void onAttach(@NonNull Context context) { super.onAttach(context); navigationManager = (NavigationManager) context; } @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); binding.btnLogin.setOnClickListener( v -> { viewModel.login(new LoginEvent(binding.etUserIdLogin.getText().toString(), Utils.md5Encryption(binding.etPasswordLogin.getText().toString()))); // faker user info }); viewModel.getRemoteResponseMutableLiveData().observe(getViewLifecycleOwner(), it -> { if (it != null && it.status.equals("OK")) { Utils.constructToast(getContext(), "Login success!").show(); Config.userId = it.response.userId; Config.name = it.response.name; navigationManager.navigateTo(new HomeListFragment()); } else { Utils.constructToast(getContext(), it == null ? "Error !" : it.status).show(); } }); viewModel.getErrMsgMutableLiveData().observe(getViewLifecycleOwner(), it -> { Utils.constructToast(getContext(), it).show(); }); } @Override protected LoginViewModel getViewModel() { return new ViewModelProvider(requireActivity(), getFactory()).get(LoginViewModel.class); } @Override protected ViewModelProvider.Factory getFactory() { return new ViewModelProvider.Factory() { @NonNull @Override public <T extends ViewModel> T create(@NonNull Class<T> modelClass) { return (T) new LoginViewModel(getRepository()); } }; } @Override protected LoginRepository getRepository() { return new LoginRepository(); } } ``` 补充:我寻思Transformation.distinctUntilChange()可能有用,但是用了好像没效果,不知道是不是这么用 ``` private final LiveData<RemoteResponse<UserInfo>> remoteResponseMutableLiveData = Transformations.distinctUntilChange(Transformations .switchMap(loginEventMutableLiveData, repository::login))); ``` 我听说把viewmodel的东西手动清空也可以,但不知道怎么清空

ListView中OnItemClickListener事件不能执行

Activity类: private String[] mStrings2={"Title 01","Title 02"}; private String[] mStrings = {"Link to the image1", "Link to the image2"}; MyAdapter adapter; mainList.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { adapter=new LazyAdapter(this, mStrings, mStrings2); subList.setAdapter(adapternew); } }); MyAdapter class (MyAdapter.java) private Activity activity; private String[] data; private String[] data2; private static LayoutInflater inflater=null; public ImageLoader imageLoader; //Constructor public LazyAdapter(Activity a, String[] d, String[] mStrings2) { activity = a; data=d; data2=mStrings2; inflater = LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE); imageLoader=new ImageLoader(activity.getApplicationContext()); } 当我点击第一个 List Item,我想把元素加载到第二个数组中。但是当执行程序后,获得NullPointerException异常。就是说ListView中OnItemClickListener事件不能执行。大家能指导下哪出错了吗? 12-04 14:21:42.499: E/AndroidRuntime(1429): java.lang.NullPointerException 12-04 14:21:42.499: E/AndroidRuntime(1429): at com.java.hotelapp.Item_List$1.onItemClick(Item_List.java:106) 12-04 14:21:42.499: E/AndroidRuntime(1429): at android.widget.AdapterView.performItemClick(AdapterView.java:282) 12-04 14:21:42.499: E/AndroidRuntime(1429): at android.widget.AbsListView.performItemClick(AbsListView.java:1037) 12-04 14:21:42.499: E/AndroidRuntime(1429): at android.widget.AbsListView$PerformClick.run(AbsListView.java:2449) 12-04 14:21:42.499: E/AndroidRuntime(1429): at android.widget.AbsListView$1.run(AbsListView.java:3073) 12-04 14:21:42.499: E/AndroidRuntime(1429): at android.os.Handler.handleCallback(Handler.java:587) 12-04 14:21:42.499: E/AndroidRuntime(1429): at android.os.Handler.dispatchMessage(Handler.java:92) 12-04 14:21:42.499: E/AndroidRuntime(1429): at android.os.Looper.loop(Looper.java:132) 12-04 14:21:42.499: E/AndroidRuntime(1429): at android.app.ActivityThread.main(ActivityThread.java:4123) 12-04 14:21:42.499: E/AndroidRuntime(1429): at java.lang.reflect.Method.invokeNative(Native Method) 12-04 14:21:42.499: E/AndroidRuntime(1429): at java.lang.reflect.Method.invoke(Method.java:491) 12-04 14:21:42.499: E/AndroidRuntime(1429): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841) 12-04 14:21:42.499: E/AndroidRuntime(1429): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599) 12-04 14:21:42.499: E/AndroidRuntime(1429): at dalvik.system.NativeStart.main(Native Method)

在中国程序员是青春饭吗?

今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...

程序员请照顾好自己,周末病魔差点一套带走我。

程序员在一个周末的时间,得了重病,差点当场去世,还好及时挽救回来了。

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

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

和黑客斗争的 6 天!

互联网公司工作,很难避免不和黑客们打交道,我呆过的两家互联网公司,几乎每月每天每分钟都有黑客在公司网站上扫描。有的是寻找 Sql 注入的缺口,有的是寻找线上服务器可能存在的漏洞,大部分都...

Intellij IDEA 实用插件安利

1. 前言从2020 年 JVM 生态报告解读 可以看出Intellij IDEA 目前已经稳坐 Java IDE 头把交椅。而且统计得出付费用户已经超过了八成(国外统计)。IDEA 的...

搜狗输入法也在挑战国人的智商!

故事总是一个接着一个到来...上周写完《鲁大师已经彻底沦为一款垃圾流氓软件!》这篇文章之后,鲁大师的市场工作人员就找到了我,希望把这篇文章删除掉。经过一番沟通我先把这篇文章从公号中删除了...

总结了 150 余个神奇网站,你不来瞅瞅吗?

原博客再更新,可能就没了,之后将持续更新本篇博客。

副业收入是我做程序媛的3倍,工作外的B面人生是怎样的?

提到“程序员”,多数人脑海里首先想到的大约是:为人木讷、薪水超高、工作枯燥…… 然而,当离开工作岗位,撕去层层标签,脱下“程序员”这身外套,有的人生动又有趣,马上展现出了完全不同的A/B面人生! 不论是简单的爱好,还是正经的副业,他们都干得同样出色。偶尔,还能和程序员的特质结合,产生奇妙的“化学反应”。 @Charlotte:平日素颜示人,周末美妆博主 大家都以为程序媛也个个不修边幅,但我们也许...

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

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

如果你是老板,你会不会踢了这样的员工?

有个好朋友ZS,是技术总监,昨天问我:“有一个老下属,跟了我很多年,做事勤勤恳恳,主动性也很好。但随着公司的发展,他的进步速度,跟不上团队的步伐了,有点...

我入职阿里后,才知道原来简历这么写

私下里,有不少读者问我:“二哥,如何才能写出一份专业的技术简历呢?我总感觉自己写的简历太烂了,所以投了无数份,都石沉大海了。”说实话,我自己好多年没有写过简历了,但我认识的一个同行,他在阿里,给我说了一些他当年写简历的方法论,我感觉太牛逼了,实在是忍不住,就分享了出来,希望能够帮助到你。 01、简历的本质 作为简历的撰写者,你必须要搞清楚一点,简历的本质是什么,它就是为了来销售你的价值主张的。往深...

魂迁光刻,梦绕芯片,中芯国际终获ASML大型光刻机

据羊城晚报报道,近日中芯国际从荷兰进口的一台大型光刻机,顺利通过深圳出口加工区场站两道闸口进入厂区,中芯国际发表公告称该光刻机并非此前盛传的EUV光刻机,主要用于企业复工复产后的生产线扩容。 我们知道EUV主要用于7nm及以下制程的芯片制造,光刻机作为集成电路制造中最关键的设备,对芯片制作工艺有着决定性的影响,被誉为“超精密制造技术皇冠上的明珠”,根据之前中芯国际的公报,目...

优雅的替换if-else语句

场景 日常开发,if-else语句写的不少吧??当逻辑分支非常多的时候,if-else套了一层又一层,虽然业务功能倒是实现了,但是看起来是真的很不优雅,尤其是对于我这种有强迫症的程序"猿",看到这么多if-else,脑袋瓜子就嗡嗡的,总想着解锁新姿势:干掉过多的if-else!!!本文将介绍三板斧手段: 优先判断条件,条件不满足的,逻辑及时中断返回; 采用策略模式+工厂模式; 结合注解,锦...

离职半年了,老东家又发 offer,回不回?

有小伙伴问松哥这个问题,他在上海某公司,在离职了几个月后,前公司的领导联系到他,希望他能够返聘回去,他很纠结要不要回去? 俗话说好马不吃回头草,但是这个小伙伴既然感到纠结了,我觉得至少说明了两个问题:1.曾经的公司还不错;2.现在的日子也不是很如意。否则应该就不会纠结了。 老实说,松哥之前也有过类似的经历,今天就来和小伙伴们聊聊回头草到底吃不吃。 首先一个基本观点,就是离职了也没必要和老东家弄的苦...

2020阿里全球数学大赛:3万名高手、4道题、2天2夜未交卷

阿里巴巴全球数学竞赛( Alibaba Global Mathematics Competition)由马云发起,由中国科学技术协会、阿里巴巴基金会、阿里巴巴达摩院共同举办。大赛不设报名门槛,全世界爱好数学的人都可参与,不论是否出身数学专业、是否投身数学研究。 2020年阿里巴巴达摩院邀请北京大学、剑桥大学、浙江大学等高校的顶尖数学教师组建了出题组。中科院院士、美国艺术与科学院院士、北京国际数学...

为什么你不想学习?只想玩?人是如何一步一步废掉的

不知道是不是只有我这样子,还是你们也有过类似的经历。 上学的时候总有很多光辉历史,学年名列前茅,或者单科目大佬,但是虽然慢慢地长大了,你开始懈怠了,开始废掉了。。。 什么?你说不知道具体的情况是怎么样的? 我来告诉你: 你常常潜意识里或者心理觉得,自己真正的生活或者奋斗还没有开始。总是幻想着自己还拥有大把时间,还有无限的可能,自己还能逆风翻盘,只不是自己还没开始罢了,自己以后肯定会变得特别厉害...

百度工程师,获利10万,判刑3年!

所有一夜暴富的方法都写在刑法中,但总有人心存侥幸。这些年互联网犯罪高发,一些工程师高技术犯罪更是引发关注。这两天,一个百度运维工程师的案例传遍朋友圈。1...

程序员为什么千万不要瞎努力?

本文作者用对比非常鲜明的两个开发团队的故事,讲解了敏捷开发之道 —— 如果你的团队缺乏统一标准的环境,那么即使勤劳努力,不仅会极其耗时而且成果甚微,使用...

为什么程序员做外包会被瞧不起?

二哥,有个事想询问下您的意见,您觉得应届生值得去外包吗?公司虽然挺大的,中xx,但待遇感觉挺低,马上要报到,挺纠结的。

当HR压你价,说你只值7K,你该怎么回答?

当HR压你价,说你只值7K时,你可以流畅地回答,记住,是流畅,不能犹豫。 礼貌地说:“7K是吗?了解了。嗯~其实我对贵司的面试官印象很好。只不过,现在我的手头上已经有一份11K的offer。来面试,主要也是自己对贵司挺有兴趣的,所以过来看看……”(未完) 这段话主要是陪HR互诈的同时,从公司兴趣,公司职员印象上,都给予对方正面的肯定,既能提升HR的好感度,又能让谈判气氛融洽,为后面的发挥留足空间。...

面试:第十六章:Java中级开发(16k)

HashMap底层实现原理,红黑树,B+树,B树的结构原理 Spring的AOP和IOC是什么?它们常见的使用场景有哪些?Spring事务,事务的属性,传播行为,数据库隔离级别 Spring和SpringMVC,MyBatis以及SpringBoot的注解分别有哪些?SpringMVC的工作原理,SpringBoot框架的优点,MyBatis框架的优点 SpringCould组件有哪些,他们...

面试阿里p7,被按在地上摩擦,鬼知道我经历了什么?

面试阿里p7被问到的问题(当时我只知道第一个):@Conditional是做什么的?@Conditional多个条件是什么逻辑关系?条件判断在什么时候执...

无代码时代来临,程序员如何保住饭碗?

编程语言层出不穷,从最初的机器语言到如今2500种以上的高级语言,程序员们大呼“学到头秃”。程序员一边面临编程语言不断推陈出新,一边面临由于许多代码已存在,程序员编写新应用程序时存在重复“搬砖”的现象。 无代码/低代码编程应运而生。无代码/低代码是一种创建应用的方法,它可以让开发者使用最少的编码知识来快速开发应用程序。开发者通过图形界面中,可视化建模来组装和配置应用程序。这样一来,开发者直...

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

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

大三实习生,字节跳动面经分享,已拿Offer

说实话,自己的算法,我一个不会,太难了吧

程序员垃圾简历长什么样?

已经连续五年参加大厂校招、社招的技术面试工作,简历看的不下于万份 这篇文章会用实例告诉你,什么是差的程序员简历! 疫情快要结束了,各个公司也都开始春招了,作为即将红遍大江南北的新晋UP主,那当然要为小伙伴们做点事(手动狗头)。 就在公众号里公开征简历,义务帮大家看,并一一点评。《启舰:春招在即,义务帮大家看看简历吧》 一石激起千层浪,三天收到两百多封简历。 花光了两个星期的所有空闲时...

《Oracle Java SE编程自学与面试指南》最佳学习路线图2020年最新版(进大厂必备)

正确选择比瞎努力更重要!

字节跳动面试官竟然问了我JDBC?

轻松等回家通知

面试官:你连SSO都不懂,就别来面试了

大厂竟然要考我SSO,卧槽。

实时更新:计算机编程语言排行榜—TIOBE世界编程语言排行榜(2020年6月份最新版)

内容导航: 1、TIOBE排行榜 2、总榜(2020年6月份) 3、本月前三名 3.1、C 3.2、Java 3.3、Python 4、学习路线图 5、参考地址 1、TIOBE排行榜 TIOBE排行榜是根据全世界互联网上有经验的程序员、课程和第三方厂商的数量,并使用搜索引擎(如Google、Bing、Yahoo!)以及Wikipedia、Amazon、YouTube统计出排名数据。

阿里面试官让我用Zk(Zookeeper)实现分布式锁

他可能没想到,我当场手写出来了

终于,月薪过5万了!

来看几个问题想不想月薪超过5万?想不想进入公司架构组?想不想成为项目组的负责人?想不想成为spring的高手,超越99%的对手?那么本文内容是你必须要掌握的。本文主要详解bean的生命...

​能让德国人放弃现金支付​,也没谁了

在新冠疫情中,德国人越来越多地选择在超市,加油站或其他商店付款时使用非接触式付款方式。德国信贷协会Deutschen Kreditwirtschaft (DK) 的一位发言人告诉德国新...

自从喜欢上了B站这12个UP主,我越来越觉得自己是个废柴了!

不怕告诉你,我自从喜欢上了这12个UP主,哔哩哔哩成为了我手机上最耗电的软件,几乎每天都会看,可是吧,看的越多,我就越觉得自己是个废柴,唉,老天不公啊,不信你看看…… 间接性踌躇满志,持续性混吃等死,都是因为你们……但是,自己的学习力在慢慢变强,这是不容忽视的,推荐给你们! 都说B站是个宝,可是有人不会挖啊,没事,今天咱挖好的送你一箩筐,首先啊,我在B站上最喜欢看这个家伙的视频了,为啥 ,咱撇...

立即提问
相关内容推荐