Java 安卓应用程序在点击按钮时崩溃(这可能是因为我添加了ListView)
我的应用程序显示,当我单击应用程序中的“唯一”按钮时,会弹出一条消息,说OMG Android已经停止。这可能是由于我使用的ListView组件存储了我在EditText组件中输入的内容。我是初学者。请帮忙!(我使用kitkat手机使用文件C:\Users\admin\AndroidStudioProjects\OMGAndroid\app\build\outputs\apk尝试此应用程序) activity_main.xml:Java 安卓应用程序在点击按钮时崩溃(这可能是因为我添加了ListView),java,android,xml,android-layout,listview,Java,Android,Xml,Android Layout,Listview,我的应用程序显示,当我单击应用程序中的“唯一”按钮时,会弹出一条消息,说OMG Android已经停止。这可能是由于我使用的ListView组件存储了我在EditText组件中输入的内容。我是初学者。请帮忙!(我使用kitkat手机使用文件C:\Users\admin\AndroidStudioProjects\OMGAndroid\app\build\outputs\apk尝试此应用程序) activity_main.xml: <LinearLayout xmlns:android="h
<LinearLayout 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:orientation="vertical"
tools:context=".MainActivity">
<TextView
android:id="@+id/main_textview"
android:text="@string/hello_world"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<ListView
android:id="@+id/main_listview"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:layout_marginTop="20dp"/>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<!-- Set OnClickListener to trigger results when pressed -->
<Button
android:id="@+id/main_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:layout_marginLeft="20dp"
android:text="@string/button" />
<!-- Shows an image from your drawable resources -->
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:layout_marginLeft="20dp"
android:src="@drawable/ic_launcher" />
<!-- Closing tag for the horizontal nested layout -->
</LinearLayout>
<!-- Displays keyboard when touched -->
<EditText
android:id="@+id/main_edittext"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:layout_marginLeft="20dp"
android:hint="@string/hint" />
}
AndroidManifest.xml:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.admin.omgandroid" >
<uses-sdk
android:targetSdkVersion="21"
android:minSdkVersion="16" />
<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:label="@string/app_name"
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>
strings.xml:
<resources>
<string name="app_name">OMG Android</string>
<string name="action_settings">Settings</string>
<string name="hello_world">As if</string>
<string name="button">Update The TextView</string>
<string name="hint">A Name</string>
</resources>
天哪,安卓
设置
犹如
更新文本视图
名字
这是代码的一部分
@Override
public void onClick(View v) {
mainTextView.setText("Button Pressed");
mainTextView.setText(mainEditText.getText().toString() + " is learning android development");
// Also add that value to the list shown in the ListView
mNameList.add(mainEditText.getText().toString());
//This is where you are going wrong
mArrayAdapter.notifyDataSetChanged();
}
您在哪里初始化了阵列适配器,阵列适配器对象在哪里
listview是如何获取数据的
这是你应该做的
- 初始化阵列适配器
- 获取列表视图项的引用
- 将适配器设置为listview
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/list_item_text_view"
android:minHeight="?android:attr/listPreferredItemHeight"
android:gravity="center_vertical">
</TextView>
现在,添加此代码
mArrayAdapter = new ArrayAdapter<String>(getActivity(),R.layout.listView_text_layout,R.id.list_item_text_view,mNameList);
ListView listView = (ListView) rootView.findViewById(R.id.main_listview);
listView.setAdapter(mArrayAdapter);
mArrayAdapter=newarrayadapter(getActivity(),R.layout.listView\u text\u layout,R.id.list\u item\u text\u view,mNameList);
ListView ListView=(ListView)rootView.findViewById(R.id.main\u ListView);
setAdapter(mArrayAdapter);
我还建议查看《使用arrayadapter的开发人员指南》或一些教程。编辑我的答案
上课开始时
ArrayAdapter <String>mArrayAdapter;
ArrayList<String> mNameList = new ArrayList<String>();
ArrayAdapter mArrayAdapter;
ArrayList mNameList=新的ArrayList();
在onCreate结束时:
mArrayAdapter = new ArrayAdapter<>(this,
android.R.layout.simple_list_item_1, mNameList);
mainListView.setAdapter(mArrayAdapter);
mArrayAdapter=新阵列适配器(此,
android.R.layout.simple_list_item_1,mNameList);
mainListView.setAdapter(mArrayAdapter);
错误日志在哪里?列表视图在哪里?它在activity\u main.xml和MainActivity.java中。我可以将其初始化为null吗?我是初学者,请添加代码以执行以下操作:;初始化阵列适配器以获取列表视图项的引用。将适配器设置为listviewyes,可以设置为null。但是,编译器会在运行时再次抛出空指针异常;这个答案无法回答问题。请删除答案,并将其添加为注释。我只是在手机上运行应用程序,当我按下按钮时,会弹出一个东西,说OMG Android已停止。答案是他没有初始化适配器。你可以告诉我在上面的代码中应该在哪里进行更改吗?
mArrayAdapter = new ArrayAdapter<>(this,
android.R.layout.simple_list_item_1, mNameList);
mainListView.setAdapter(mArrayAdapter);