- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我对 Android 完全陌生,目前正在尝试从从我的服务器中提取的 JSON 数组生成 ListView ,我已经阅读了很多教程但没有运气,有一种独特的方法可以做到这一点。能否请您指出一些好的开始资源。
我已阅读 this页面但是我坚持使用以下代码:
import josecgomez.com.android.dev.webservice.objects.alerts;
public class AlertsAdapter extends ArrayAdapter<alerts>
最佳答案
JSON
& listview
会这样工作..
1.显示项目列表
Android SDK 提供了一种使用名为 android.app.ListActivity 的父类(super class)快速显示数据列表的便捷方法。这个Activity已经提供了一个ContentView,配置了ListView
,准备使用并填充数据。
现在需要为 ListView 提供要显示的数据,以及将该数据映射到行的方法。 ListAdaptors 提供了这种机制,并使用 setListAdaptor 在 ListActivity 的底层 ListView 上设置。
一个 Android SDK 提供的适配器 (ArrayAdaptor)
知道如何将任意数据数组处理成 ListViews
(Android SDK 还附带了其他几个 ListAdaptors
,例如 Cursor Adaptors,它们可以在将本地数据存储连接到 ListView 时提供帮助)。您还需要为适配器提供一个布局,它可以用来将元素呈现到每一行上。在下面的示例中,我们使用 Android SDK 提供的布局 simple_list_item_1,这是一个单一的文本标签——非常适合放置我们的单个字符串:
String[] elements = {"Line 1", "Line 2"};
setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, elements));
public class ABC {
String userId;
String pwd;
}
/res/layout/list_item.xml
中创建布局 XML 文件定义两个
TextViews
在单独的行上显示内容和作者。为了将它们显示在另一个之上,请使用 LinearLayout,配置为垂直渲染其中的每个元素
(android:orientation="vertical")
.
R.layout.list_item
在 Java 代码中,正如您接下来在自定义列表适配器中所做的那样。
ListAdaptor
的私有(private)类(在 Activity 内)哪个子类
ArrayAdaptor
.此类应用于存储正在显示的 ArrayList,并提供一种将对象映射到
TextViews
的方法。您在上面的布局中创建。
private class abcListAdaptor extends ArrayAdapter<abc> {
private ArrayList<abc> abc;
public abcListAdaptor(Context context, int textViewResourceId, ArrayList<abc> items) {
super(context, textViewResourceId, items);
this.abc = items;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
if (v == null) {
LayoutInflater vi = (LayoutInflater) getSystemService
(Context.LAYOUT_INFLATER_SERVICE);
v = vi.inflate(R.layout.list_item, null);
}
abc o = abc.get(position);
TextView tt = (TextView) v.findViewById(R.id.uid);
TextView bt = (TextView) v.findViewById(R.id.pwd);
tt.setText(o.userid);
bt.setText(o.pwd);
return v;
}
}
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
abc a = new abc();
a.userid = "tech";
a.pwd = "android";
ArrayList<abc> items = new ArrayList<abc>();
items.add(a);
abcListAdaptor adaptor = new abcListAdaptor(this,R.layout.list_item, items);
setListAdapter(adaptor);
}
org.apache.http package
下找到。 .您将使用这些类以及
org.json
类来解析从服务器返回的数据。
ArrayList
的对象。下面列出的代码发出请求并查找结果
JSON array
,它被迭代以提取每个文本和 from_user 元素。
ArrayList<abc> getDetail= new ArrayList<abc>();
try {
HttpClient hc = new DefaultHttpClient();
HttpGet get = new
HttpGet("<a href="http://your URL"></a>");
HttpResponse rp = hc.execute(get);
if(rp.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
String result = EntityUtils.toString(rp.getEntity());
JSONObject root = new JSONObject(result);
JSONArray sessions = root.getJSONArray("results");
for (int i = 0; i < sessions.length(); i++) {
JSONObject session = sessions.getJSONObject(i);
abc a = new abc();
a.uid = session.getString("user");
a.pwd = session.getString("password");
getDetail.add(a);
}
}
}
catch (Exception e) {
Log.e("Activity", "Error loading JSON", e);
}
abcListAdaptor adaptor = new abcListAdaptor(this,R.layout.list_item, load());
onCreate
之类的方法中执行远程数据请求的长时间运行工作造成的。 .
Thread
类可用于此任务,有一个复杂之处在于,一旦长时间运行的任务完成,它通常希望更改用户界面以报告结果(即显示从请求加载的列表)。
关于android - 在android中从JSON生成 ListView ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12642382/
我之前在论坛上发布过这个,但我想我不太清楚。我有一个侧边栏 ListView 和一个包含我的控件的主面板。我想在 oncreate() 中突出显示 listview 中的 Activity 项,因为每
这里有没有人知道我如何通过 onTap() 扩展 ListView 项(在本例中为卡片)的内容 - 以显示更多选项?您知道那里有可以提供帮助的酒吧吗? 我已经看过了,但我不知道要搜索什么?我相信你们都
我的 ListView 控件有问题。我希望我的奇数行和偶数行具有不同的颜色,但我想通过代码而不是 FXML 来实现。例如: 第一行 - 绿色 第二行 - 红色 第三行 - 绿色 第四行 - 红色 现在
我有一个 ListView 。我想让单元格背景透明。目前,我正在做以下事情: .list-cell { -fx-background-color: transparent; } 但是,细胞的颜
我想创建一个几乎无限的元素列表,但我想将列表的初始位置设置为某个特定元素。像这张图片: 其中索引 0 将是初始位置,并且此列表可能会也可能不会在两个方向上延伸很长。 我可以像这样创建我的元素: W
有没有办法在JavaFX中获取ListView的可见项?我想确定 JavaFX 应用程序中 ListView 显示的第一个可见项。 以下代码found here不适合我(仅适用于 TableView)
开发人员。 我尝试在水平方向拉伸(stretch) ListView 项目。我确实重置了 ItemContainerStyle ,并且水平对齐是拉伸(stretch)的。这是 MainPage.xam
有没有办法在JavaFX中获取ListView的可见项?我想确定 JavaFX 应用程序中 ListView 显示的第一个可见项。 以下代码found here不适合我(仅适用于 TableView)
我想问一下: 我有一个预定义顺序的数组。 var order=new Array(); order[0]="Tesco"; order[1]="Interspar"; order[2]="
我希望创建以下内容:当到达内部 Listview 的顶部或底部时,我想继续在顶部 Listview 中滚动。见动图: Gif of what I got so far 一个选项是在到达底部时将内部 L
我正在尝试在 ajax 发布后刷新 jQuery 移动 ListView ,我一直在尝试使用 .trigger("create") 来执行此操作,如下所示: Most Played
我真的不明白是什么导致了错误我检查了文档,这里有一个非常相似的例子是我的 views.py,我使用的应用程序下的 urls.py 包含,以及模板 View .py class SchoolListVi
我有这个父布局 parent_listview 的列表项具有这种布局 child_listview 的项目有这个布局
我在单击列表项时获取 listview 项 时遇到问题。我得到了 simple listview(Arrayadapter) 的 listview item,但我遇到了 custom listview
我有一个工作正常的 DropdownMenu,但我需要一个 ListView,但我无法转换它。 DropdownMenu 如下所示: // Create the List of devices t
我想实现一个可滚动(垂直)且其中包含元素的屏幕。所以我把它放在 listview.builder 上。问题是,其中一个元素是另一个水平滚动的 listview.builder。当我实现它时,horiz
帮助!我想不通! 为了帮助我学习 SwiftUI,我正在使用 ListView 制作一个简单的杂货 list 应用程序。点击列表中的每个项目时,有些按钮会变成绿色或红色。 在我向列表数组中添加太多项目
所以我知道我们可以等待 ListView 加载,然后显示它。但是,如果我们动态加载正在下载的图像,ListView 将加载但图像尚未加载,因此它们不会出现在 ListView 中。 可接受的等待 Li
我是 Android 的新手,正在努力提高编程技能。 在这里,我有自定义 ListView 适配器类,我曾在其中显示 ListView 项目,如 TextView 、图像等。 我需要做的是,我在 Li
So, what I want is to individually disable a button for the concerned item in the ListView when clic
我是一名优秀的程序员,十分优秀!