gpt4 book ai didi

java - 抽屉列表阵列适配器使应用程序崩溃

转载 作者:行者123 更新时间:2023-12-01 20:22:21 25 4
gpt4 key购买 nike

我遇到了有关 Android 抽屉式导航菜单实现的问题。当我尝试通过字符串适配器使用字符串列表(或数组,两者都不起作用)填充左侧菜单选项时,应用程序崩溃得如此之快,以至于 LogCat 无法捕获任何消息。

Main Activity 错误部分:

package edu.getjedi.frontend.mobile;

import android.Manifest;
import android.content.pm.PackageManager;
import android.support.v4.app.ActivityCompat;
import android.support.v4.app.FragmentActivity;
import android.os.Bundle;
import android.support.v4.widget.DrawerLayout;
import android.util.Log;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;

import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.SupportMapFragment;

import java.util.ArrayList;

public class MainMapActivity extends FragmentActivity implements OnMapReadyCallback {
private UserLocationHandler locationHandler;
private DrawerLayout mDrawerLayout;
private ListView mDrawerList;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

ArrayList<String> test = new ArrayList<>();

test.add("abc");
test.add("def");
test.add("ghi");

setContentView(R.layout.activity_main);
// Obtain the SupportMapFragment and get notified when the map is ready to be used.
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
mDrawerList = (ListView) findViewById(R.id.left_drawer);
// Set the list's click listener
mDrawerList.setOnItemClickListener(new DrawerMenuHandler());
mDrawerList.setAdapter(new ArrayAdapter<String>(this, R.layout.activity_main, test)); // Trouble is here!!
}

(...)

如果我注释 mDrawerList.setAdapter(...) 行,其他一切都会正常工作。

<小时/>

布局/activity_main.xml:

<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<!-- The main content view -->
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:map="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/map"
android:name="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="edu.getjedi.frontend.mobile.MainMapActivity" />
<!-- The navigation drawer -->
<ListView android:id="@+id/left_drawer"
android:layout_width="240dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:choiceMode="singleChoice"
android:divider="@android:color/transparent"
android:dividerHeight="0dp"
android:background="#111"/>
</android.support.v4.widget.DrawerLayout>

我遵循的指南: Navigation Drawer - Android Developers

教程和我的代码示例有什么区别? - FrameLayout 是一个 map fragment ,包含指向 MainMapActivity 作为上下文的指针。

<小时/>

应用程序通过 Volley 处理 GPS 和 Http 请求效果很好,但是当我添加这一行时

        mDrawerList.setAdapter(new ArrayAdapter<String>(this, R.layout.activity_main, test));

它拒绝启动并产生任何有用的消息。

任何帮助表示赞赏。感谢您的阅读。

最佳答案

你使用它完全错误。

new ArrayAdapter<String>(CONTEXT,VIEW_ID_TO_SHOW_TEXT, YOUR_LIST)

您不应将 R.layout.activity_main 传递给它。使用:

android.R.layout.simple_list_item_1

或者制作您的自定义布局,这只是一个 TextView 。

new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, test)

关于java - 抽屉列表阵列适配器使应用程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44480500/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com