gpt4 book ai didi

java - 应用程序没有响应

转载 作者:行者123 更新时间:2023-11-30 01:37:49 25 4
gpt4 key购买 nike

好的,这是我的问题。我正在尝试通过从服务器获取数据来创建可扩展 ListView 。但是我的应用程序没有响应。

这是我的代码MainActivity.java

public class MainActivity extends AppCompatActivity {
HashMap<String, List<String>> Movies_category;
List<String> Movies_list;
ExpandableListView Exp_list;
MoviesAdapter adapter;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

Exp_list = (ExpandableListView) findViewById(R.id.exp_list);
Movies_category = DataProvider.getInfo();
Movies_list = new ArrayList<String>(Movies_category.keySet());
adapter = new MoviesAdapter(this, Movies_category, Movies_list);
Exp_list.setAdapter(adapter);

}

}

这是 DataProvider.java

的代码
public class DataProvider {
private static HashMap<String,List<String>> MoviesDetails;

public static HashMap<String, List<String>> getInfo(){
String[] SecondArray = {"One","Two","Three"};
String[] Category = {"Action_Movies","Romantic_Movies","Horror_Movies"};
new JSONTask().execute("http://pruthvi.co/tests/ems/machine-query.php");
JSONTask json = new JSONTask();
try {
//json.get();
MoviesDetails = json.get();
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
return MoviesDetails;
}


public static class JSONTask extends AsyncTask<String,String,HashMap<String,List<String>>> {


@Override
protected HashMap<String,List<String>> doInBackground(String... params) {
HttpURLConnection connection = null;
BufferedReader reader = null;

try {
URL url = new URL(params[0]);
connection = (HttpURLConnection)url.openConnection();
connection.connect();
// connecting to the url

//Reading the data in bytes stream
InputStream stream = connection.getInputStream();
reader = new BufferedReader(new InputStreamReader(stream));
//Reading the data by creating a buffer
StringBuffer buffer = new StringBuffer();
String line="";
while((line = reader.readLine())!= null){
buffer.append(line);
}

String finalJson = buffer.toString();
JSONObject parentObject = new JSONObject(finalJson);

List<String> list = new ArrayList<String>();
JSONArray array = parentObject.getJSONArray("machine-array");
for(int i = 0 ; i < array.length() ; i++){
list.add(array.getJSONObject(i).getString("name")+"\n");
}

HashMap<String,List<String>> map = new HashMap<String,List<String>>();
for(int ij=0; ij<list.size();ij++){
map.put(list.get(ij),list);
}


return map;
//return list.toArray(new String[list.size()]);
// setting text view from the url
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (JSONException e) {
e.printStackTrace();
} finally{
if(connection !=null) {
connection.disconnect();
}

try {
if (reader != null)
{
reader.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
return null;
}

@Override
protected void onPostExecute(HashMap<String,List<String>> result) {
super.onPostExecute(result);
HashMap<String, List<String>> MoviesDetails = new HashMap<String, List<String>>();
String[] SecondArray = {"One","Two","Three","four","five","six"};
String[] resultArray = (String[]) result.values().toArray();

for(int j=0; j<resultArray.length;j++) {
MoviesDetails.put(resultArray[j], new ArrayList<String>());
}

for(int k=0;k<resultArray.length;k++)
{
for (int i=0;i<SecondArray.length; i++) {
MoviesDetails.get(resultArray[k]).add(SecondArray[i]);
}
}
}
}

}

有人可以帮我解决我哪里出错了吗?在 onCreate 方法中,我正在获取 expandableListView,然后我为方法 getInfo() 调用 DataProvider 类;

我怀疑 Dataprovider 类的执行时间很长。另外,有人可以帮助我如何调试相同的执行时间。

提前致谢

最佳答案

如果您的应用没有响应,则表示 UI 线程中正在执行某些操作。

如果您执行以下步骤,您可以找到正在执行的代码段(假设您使用的是 Android Studio,我们从左上角的菜单开始):

运行 ->

将调试器附加到 android 进程 ->

在相应设备上选择进程,按ok ->

按底部栏上的“调试”(如果它没有自行显示)->

暂停程序(从左边开始)->

在“frames”中找到名称中包含“main”的那个(这是你的主线程,应该是“RUNNING”)->

选择那个,这样您就会看到它的堆栈跟踪。

在您的堆栈顶部,您将看到代码的位置,即您的程序现在所在的位置。

当你知道你的节目在哪里举行时,我希望你能够解决你的问题。

关于java - 应用程序没有响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34907407/

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