- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
<分区>
我遇到了这个 Nullpointer 异常,我不知道为什么。我研究过并知道 getCount 返回 null,但我不明白为什么。我正在尝试解析 JSON 数组并将该信息发送到自定义适配器以显示自定义 ListView 。在过去的 7 天里,我一直在转来转去。该应用程序正在运行并从静态 JSON 文件中提取数据。我需要在更新数据库时更新提要,因此静态 JSON 不是一个好的解决方案。我最终看到屏幕只显示白色,根本没有任何细节。我可以在普通 ListView 中显示数据,但不能在扩展 View 中显示。在处理空白屏幕之前,我必须清除此异常。这是主要 Activity 、自定义适配器和模型的代码。我希望有人可以看看并提供帮助。
日志
12-19 01:02:58.516 32588-32588/com.brasiltradefx.btfxalerts E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.brasiltradefx.btfxalerts, PID: 32588
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.brasiltradefx.btfxalerts/com.brasiltradefx.btfxalertsadmin.AlertMainActivity}: java.lang.NullPointerException
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2292)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2350)
at android.app.ActivityThread.access$800(ActivityThread.java:163)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1257)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:157)
at android.app.ActivityThread.main(ActivityThread.java:5335)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1265)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1081)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
at com.brasiltradefx.btfxalertsadmin.adapter.FeedListAdapter.getCount(FeedListAdapter.java:48)
at android.widget.ListView.setAdapter(ListView.java:486)
at com.brasiltradefx.btfxalertsadmin.AlertMainActivity.onCreate(AlertMainActivity.java:46)
主要 Activity (更新)
public class AlertMainActivity extends Activity {
private String url = "http://www.contrariantradefx.info/android/btfxalerts/alerts_all_data_clients.php";
ProgressDialog PD;
ArrayList<String> feedItems;
FeedListAdapter listadapter;
ListView listView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_alert_main);
listView = (ListView)findViewById(R.id.list);
feedItems = new ArrayList<>();
PD = new ProgressDialog(this);
PD.setMessage("Loading...");
PD.setCancelable(false);
listadapter = new FeedListAdapter(this, feedItems);
listView.setAdapter(listadapter);
MakeJsonArrayReq();
}
private void MakeJsonArrayReq() {
PD.show();
JsonArrayRequest jreq = new JsonArrayRequest(url, new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response) {
for (int i = 0; i < response.length(); i++) {
try {
JSONObject jo = response.getJSONObject(i);
String date = jo.getString("date");
String order = jo.getString("order");
String pair = jo.getString("pair");
String rate = jo.getString("rate");
String quick_target = jo.getString("quick_target");
String long_target = jo.getString("long_target");
String stop_loss = jo.getString("stop_loss");
String break_even = jo.getString("break_even");
String name = jo.getString("name");
String status = jo.getString("status");
String profilePic = jo.getString("profilePic");
String image = jo.isNull("image")? null : jo.getString("image");
FeedItem item = new FeedItem();
item.setDate(date);
item.setOrder_type(order);
item.setPair(pair);
item.setRate(rate);
item.setQuick_target(quick_target);
item.setLong_target(long_target);
item.setStop_loss(stop_loss);
item.setBreak_Even(break_even);
item.setName(name);
item.setStatus(status);
item.setProfilePic(profilePic);
item.setImge(image);
feedItems.add(feedItems); // (feedItems)this is saying add(java.lang.String) in ArrayList cannot be applied to(java.util.ArrayList<java.lang.String
} catch (JSONException e) {
e.printStackTrace();
}
}
PD.dismiss();
listadapter.notifyDataSetChanged();
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
});
AppController.getInstance().addToRequestQueue(jreq, "jreq");
}
}
FeedListAdapter(已更新)
public class FeedListAdapter extends BaseAdapter {
private Activity activity;
private LayoutInflater inflater;
private ArrayList<FeedItem> feedItems;
int size=0 ;
ImageLoader imageLoader = AppController.getInstance().getImageLoader();
public FeedListAdapter(AlertMainActivity activity, ArrayList<String> feedItems) {
this.activity = activity;
this.feedItems = feedItems; // this is saying incompatible types. required ArrayList com.brasiltradefx.btfxalertsadmin.data.FeedItem
found ArrayList java.lang.String
if(this.feedItems !=null && !this.feedItems.isEmpty()){
size = this.feedItems.size();
}
}
@Override
public int getCount() {
return feedItems.size();
}
@Override
public Object getItem(int location) {
return feedItems.get(location);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (inflater == null)
inflater = (LayoutInflater) activity
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
if (convertView == null)
convertView = inflater.inflate(R.layout.feed_item, null);
if (imageLoader == null)
imageLoader = AppController.getInstance().getImageLoader();
TextView name = (TextView) convertView.findViewById(R.id.txtname);
TextView date = (TextView) convertView
.findViewById(R.id.txtdate);
TextView statusMsg = (TextView) convertView
.findViewById(R.id.txtStatusMsg);
TextView order_type = (TextView) convertView.findViewById(R.id.txtOrderType);
TextView pair = (TextView) convertView.findViewById(R.id.txtPair);
TextView rate = (TextView) convertView.findViewById(R.id.txtRate);
TextView quick_target = (TextView) convertView.findViewById(R.id.txtQuick_Target);
TextView long_target = (TextView) convertView.findViewById(R.id.txtLong_Target);
TextView stop_loss = (TextView) convertView.findViewById(R.id.txtStop_Loss);
TextView break_even = (TextView) convertView.findViewById(R.id.txtBreak_Even);
NetworkImageView profilePic = (NetworkImageView) convertView.findViewById(R.id.profilePic);
FeedImageView feedImageView = (FeedImageView) convertView
.findViewById(R.id.feedImage1);
FeedItem item = feedItems.get(position);
name.setText(item.getName());
date.setText(item.getDate());
order_type.setText(item.getOrder_type());
pair.setText(item.getPair());
rate.setText(item.getRate());
quick_target.setText(item.getQuick_target());
long_target.setText(item.getLong_target());
stop_loss.setText(item.getStop_loss());
break_even.setText(item.getBreak_Even());
//Converting timestamp into x ago format - removed timeStamp - using date
//CharSequence timeAgo = DateUtils.getRelativeTimeSpanString(
//Long.parseLong(item.getTimeStamp()),
//System.currentTimeMillis(), DateUtils.SECOND_IN_MILLIS);
//timestamp.setText(timeAgo);
// Chcek for empty status message
if (!TextUtils.isEmpty(item.getStatus())) {
statusMsg.setText(item.getStatus());
statusMsg.setVisibility(View.VISIBLE);
} else {
// status is empty, remove from view
statusMsg.setVisibility(View.GONE);
}
// Checking for null feed url
//if (item.getUrl() != null) {
//url.setText(Html.fromHtml("<a href=\"" + item.getUrl() + "\">"
//+ item.getUrl() + "</a> "));
// Making url clickable
//url.setMovementMethod(LinkMovementMethod.getInstance());
//url.setVisibility(View.VISIBLE);
//} else {
// url is null, remove from the view
//url.setVisibility(View.GONE);
//}
// user profile pic
profilePic.setImageUrl(item.getProfilePic(), imageLoader);
// Feed image
if (item.getImge() != null) {
feedImageView.setImageUrl(item.getImge(), imageLoader);
feedImageView.setVisibility(View.VISIBLE);
feedImageView
.setResponseObserver(new FeedImageView.ResponseObserver() {
@Override
public void onError() {
}
@Override
public void onSuccess() {
}
});
} else {
feedImageView.setVisibility(View.GONE);
}
return convertView;
}
}
feed_item.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/feed_bg"
android:orientation="vertical"
android:showDividers="end">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:paddingLeft="@dimen/feed_item_padding_left_right"
android:paddingRight="@dimen/feed_item_padding_left_right"
android:background="#050505">
<com.android.volley.toolbox.NetworkImageView
android:id="@+id/profilePic"
android:layout_width="@dimen/feed_item_profile_pic"
android:layout_height="@dimen/feed_item_profile_pic"
android:scaleType="fitCenter"
android:layout_marginTop="15dp">
</com.android.volley.toolbox.NetworkImageView>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingLeft="@dimen/feed_item_profile_info_padd" >
<TextView
android:id="@+id/txtname"
android:layout_width="fill_parent"
android:layout_height="25dp"
android:textSize="@dimen/feed_item_profile_name"
android:textStyle="bold"
android:background="#3452aa"
android:layout_marginTop="10dp"
android:textColor="#ffffff"
android:textAlignment="center" />
<TextView
android:id="@+id/txtdate"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textColor="#ffffff"
android:textSize="@dimen/feed_item_date"
android:layout_marginTop="10dp"
android:gravity="right" />
<TextView
android:id="@+id/txtStatusMsg"
android:layout_width="157dp"
android:layout_height="wrap_content"
android:paddingBottom="5dp"
android:paddingLeft="@dimen/feed_item_status_pad_left_right"
android:paddingRight="@dimen/feed_item_status_pad_left_right"
android:paddingTop="@dimen/feed_item_status_pad_top"
android:layout_marginTop="10dp"
android:textColor="#ffffff"
android:gravity="right"
android:background="#3452aa"
android:layout_gravity="right" />
</LinearLayout>
</LinearLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/txtBreak_Even"
android:layout_width="match_parent"
android:layout_height="40dp"
android:paddingBottom="5dp"
android:paddingLeft="@dimen/feed_item_status_pad_left_right"
android:paddingRight="@dimen/feed_item_status_pad_left_right"
android:paddingTop="@dimen/feed_item_status_pad_top"
android:background="#f8fe5a"
android:textColor="#000000"
android:layout_alignBottom="@+id/textViewBreakEven"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:layout_below="@+id/txtStop_Loss"
android:layout_marginLeft="120dp"
android:layout_marginTop="5dp"
android:textAlignment="center"
android:layout_marginRight="5dp"
android:gravity="center_vertical"
android:textSize="18sp" />
<TextView
android:id="@+id/txtLong_Target"
android:layout_width="fill_parent"
android:layout_height="40dp"
android:paddingBottom="5dp"
android:paddingLeft="@dimen/feed_item_status_pad_left_right"
android:paddingRight="@dimen/feed_item_status_pad_left_right"
android:paddingTop="@dimen/feed_item_status_pad_top"
android:background="#FF3CF14C"
android:textColor="#000000"
android:layout_below="@+id/txtQuick_Target"
android:layout_alignLeft="@+id/txtQuick_Target"
android:layout_alignStart="@+id/txtQuick_Target"
android:layout_marginTop="5dp"
android:textAlignment="center"
android:layout_marginRight="5dp"
android:gravity="center_vertical"
android:textSize="18sp" />
<TextView
android:id="@+id/txtQuick_Target"
android:layout_width="fill_parent"
android:layout_height="40dp"
android:paddingBottom="5dp"
android:paddingLeft="@dimen/feed_item_status_pad_left_right"
android:paddingRight="@dimen/feed_item_status_pad_left_right"
android:paddingTop="@dimen/feed_item_status_pad_top"
android:background="#3cf14c"
android:textColor="#000000"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_marginLeft="120dp"
android:layout_marginTop="5dp"
android:layout_below="@+id/txtRate"
android:textAlignment="center"
android:layout_marginRight="5dp"
android:gravity="center_vertical"
android:textSize="18sp" />
<TextView
android:id="@+id/txtStop_Loss"
android:layout_width="fill_parent"
android:layout_height="40dp"
android:paddingBottom="5dp"
android:paddingLeft="@dimen/feed_item_status_pad_left_right"
android:paddingRight="@dimen/feed_item_status_pad_left_right"
android:paddingTop="@dimen/feed_item_status_pad_top"
android:background="#FFFC5964"
android:textColor="#000000"
android:layout_below="@+id/txtLong_Target"
android:layout_marginLeft="120dp"
android:layout_marginTop="5dp"
android:textAlignment="center"
android:layout_marginRight="5dp"
android:gravity="center_vertical"
android:textSize="18sp" />
<TextView
android:id="@+id/txtRate"
android:layout_width="fill_parent"
android:layout_height="40dp"
android:paddingBottom="5dp"
android:paddingLeft="@dimen/feed_item_status_pad_left_right"
android:paddingRight="@dimen/feed_item_status_pad_left_right"
android:paddingTop="@dimen/feed_item_status_pad_top"
android:background="#FF6AC1F7"
android:textColor="#000000"
android:layout_below="@+id/txtPair"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_marginLeft="120dp"
android:layout_marginTop="5dp"
android:textAlignment="center"
android:layout_marginRight="5dp"
android:gravity="center_vertical"
android:textSize="18sp" />
<TextView
android:id="@+id/txtPair"
android:layout_width="fill_parent"
android:layout_height="40dp"
android:paddingBottom="5dp"
android:paddingLeft="@dimen/feed_item_status_pad_left_right"
android:paddingRight="@dimen/feed_item_status_pad_left_right"
android:paddingTop="@dimen/feed_item_status_pad_top"
android:background="#FF6AC1F7"
android:textColor="#000000"
android:layout_below="@+id/txtOrderType"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_marginLeft="120dp"
android:layout_marginTop="5dp"
android:textAlignment="center"
android:layout_marginRight="5dp"
android:gravity="center_vertical"
android:textSize="18sp" />
<TextView
android:id="@+id/txtOrderType"
android:layout_width="fill_parent"
android:layout_height="40dp"
android:paddingBottom="5dp"
android:paddingLeft="@dimen/feed_item_status_pad_left_right"
android:paddingRight="@dimen/feed_item_status_pad_left_right"
android:paddingTop="@dimen/feed_item_status_pad_top"
android:background="#FF6AC1F7"
android:textColor="#000000"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_marginTop="10dp"
android:layout_toRightOf="@+id/textViewOrder_Type"
android:layout_marginLeft="120dp"
android:textAlignment="center"
android:layout_marginRight="5dp"
android:gravity="center_vertical"
android:textSize="18sp" />
<TextView
android:layout_width="110dp"
android:layout_height="40dp"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="BreakEven"
android:id="@+id/textViewBreakEven"
android:background="#FFF8FE5A"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_below="@+id/txtStop_Loss"
android:layout_marginTop="5dp"
android:textColor="#000000"
android:layout_marginLeft="5dp"
android:gravity="center_vertical|right"
android:textSize="18sp" />
<TextView
android:layout_width="110dp"
android:layout_height="40dp"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="StopLoss"
android:id="@+id/textViewStop_Loss"
android:background="#fc5964"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_below="@+id/txtLong_Target"
android:layout_marginTop="5dp"
android:textColor="#000000"
android:singleLine="false"
android:layout_marginLeft="5dp"
android:gravity="center_vertical|right"
android:textSize="18sp" />
<TextView
android:layout_width="110dp"
android:layout_height="40dp"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="Long Target"
android:id="@+id/textViewLong_Target"
android:background="#FF3CF14C"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_below="@+id/txtQuick_Target"
android:layout_marginTop="5dp"
android:textColor="#000000"
android:layout_marginLeft="5dp"
android:gravity="center_vertical|right"
android:textSize="18sp" />
<TextView
android:layout_width="110dp"
android:layout_height="40dp"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="Quick Target"
android:background="#FF3CF14C"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_below="@+id/txtRate"
android:layout_marginTop="5dp"
android:textColor="#000000"
android:id="@+id/textViewQuick_Target"
android:layout_marginLeft="5dp"
android:gravity="center_vertical|right"
android:textSize="18sp" />
<TextView
android:layout_width="110dp"
android:layout_height="40dp"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="Rate"
android:id="@+id/textViewRate"
android:background="#FF6AC1F7"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_below="@+id/txtPair"
android:layout_marginTop="5dp"
android:textColor="#000000"
android:layout_marginLeft="5dp"
android:gravity="center_vertical|right"
android:textSize="18sp" />
<TextView
android:layout_width="110dp"
android:layout_height="40dp"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="Pair"
android:id="@+id/textViewPair"
android:background="#FF6AC1F7"
android:layout_below="@+id/txtOrderType"
android:layout_alignParentStart="true"
android:layout_marginTop="5dp"
android:textColor="#000000"
android:layout_marginLeft="5dp"
android:gravity="center_vertical|right"
android:textSize="18sp" />
<TextView
android:layout_width="110dp"
android:layout_height="40dp"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="Order Type"
android:id="@+id/textViewOrder_Type"
android:background="#6ac1f7"
android:layout_alignTop="@+id/txtOrderType"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:textColor="#000000"
android:layout_alignParentBottom="false"
android:layout_marginLeft="5dp"
android:gravity="center_vertical|right"
android:textSize="18sp" />
</RelativeLayout>
<com.brasiltradefx.btfxalertsadmin.FeedImageView
android:id="@+id/feedImage1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
android:scaleType="fitXY"
android:visibility="visible" />
</LinearLayout>
我已经为使用 JGroups 编写了简单的测试。有两个像这样的简单应用程序 import org.jgroups.*; import org.jgroups.conf.ConfiguratorFact
我有一个通过 ajax 检索的 json 编码数据集。我尝试检索的一些数据点将返回 null 或空。 但是,我不希望将那些 null 或空值显示给最终用户,或传递给其他函数。 我现在正在做的是检查
这个问题在这里已经有了答案: 关闭 11 年前。 Possible Duplicate: Why does one often see “null != variable” instead of “
嗨在我们公司,他们遵循与空值进行比较的严格规则。当我编码 if(variable!=null) 在代码审查中,我收到了对此的评论,将其更改为 if(null!=variable)。上面的代码对性能有影
我正在尝试使用 native Cordova QR 扫描仪插件编译项目,但是我不断收到此错误。据我了解,这是代码编写方式的问题,它向构造函数发送了错误的值,或者根本就没有找到构造函数。那么我该如何解决
我在装有 Java 1.8 的 Windows 10 上使用 Apache Nutch 1.14。我已按照 https://wiki.apache.org/nutch/NutchTutorial 中提
这个问题已经有答案了: 已关闭11 年前。 Possible Duplicate: what is “=null” and “ IS NULL” Is there any difference bet
Three-EyedRaven 内网渗透初期,我们都希望可以豪无遗漏的尽最大可能打开目标内网攻击面,故,设计该工具的初衷是解决某些工具内网探测速率慢、运行卡死、服务爆破误报率高以及socks流
我想在Scala中像在Java中那样做: public void recv(String from) { recv(from, null); } public void recv(String
我正在尝试从一组图像补丁中创建一个密码本。我已将图像(Caltech 101)分成20 X 20图像块。我想为每个补丁创建一个SIFT描述符。但是对于某些图像补丁,它不返回任何描述符/关键点。我尝试使
我在验证器类中自动连接的两个服务有问题。这些服务工作正常,因为在我的 Controller 中是自动连接的。我有一个 applicationContext.xml 文件和 MyApp-servlet.
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 已关闭10 年前。 问题必须表现出对要解决的问题的最低程度的了解。告诉我们您尝试过做什么,为什么不起作用,以
大家好,我正在对数据库进行正常的选择,但是 mysql_num_rowsis 为空,我不知道为什么,我有 7 行选择。 如果您发现问题,请告诉我。 真的谢谢。 代码如下: function get_b
我想以以下格式创建一个字符串:id[]=%@&stringdata[]=%@&id[]=%@&stringdata[]=%@&id[]=%@&stringdata[]=%@&等,在for循环中,我得到
我正在尝试使用以下代码将URL转换为字符串: NSURL *urlOfOpenedFile = _service.myURLRequest.URL; NSString *fileThatWasOpen
我正在尝试将NSNumber传递到正在工作的UInt32中。然后,我试图将UInt32填充到NSData对象中。但是,这在这里变得有些时髦... 当我尝试将NSData对象中的内容写成它返回的字符串(
我正在进行身份验证并收到空 cookie。我想存储这个 cookie,但服务器没有返回给我 cookie。但响应代码是 200 ok。 httpConn.setRequestProperty(
我认为 Button bTutorial1 = (Button) findViewById(R.layout.tutorial1); bTutorial1.setOnClickListener
我的 Controller 中有这样的东西: model.attribute("hiringManagerMap",hiringManagerMap); 我正在访问此 hiringManagerMap
我想知道如何以正确的方式清空列表。在 div 中有一个列表然后清空 div 或列表更好吗? 我知道这是一个蹩脚的问题,但请帮助我理解这个 empty() 函数:) 案例)如果我运行这个脚本会发生什么:
我是一名优秀的程序员,十分优秀!