- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 AreaURL 类中收到空指针异常错误。一切都工作正常,直到我在 onCreate 方法中添加了一个警报对话框,并且我知道错误是出于我的 Intent ,因为当我将其注释掉时,操作就会完成。这是我的 AreaURL 代码
public class AreaURL extends Activity implements View.OnClickListener{
Button button1;
private String petrolPriceURL = "http://www.petrolprices.com/feeds/averages.xml?search_type=town&search_value=glasgow";
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.userurldisplay);
button1 = (Button) findViewById(R.id.button1);
button1.setOnClickListener(this);
}
public void onClick(View v) {
new AlertDialog.Builder(Area.this)
.setTitle("Confirm")
.setMessage("Is this the XML feed you require?")
.setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// continue
TestMethod();
}
})
.setNegativeButton(android.R.string.no, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// do nothing
}
})
.setIcon(android.R.drawable.ic_dialog_alert)
.show();
}
public void TestMethod(){
EditText mEdit;
EditText mEdit2;
String newFirstString = petrolPriceURL.substring(0,59);
String newSecondString = petrolPriceURL.substring(63,77);
mEdit = (EditText)findViewById(R.id.editText1);
mEdit.getText().toString();
mEdit2 = (EditText)findViewById(R.id.editText2);
mEdit2.getText().toString();
String newThirdString = newFirstString + mEdit.getText().toString();
String newFourthString = newSecondString + mEdit2.getText().toString();
String newFifthString = newThirdString + newFourthString;
Intent intent=new Intent(this,PetrolPriceActivity.class);
intent.putExtra("URLString",newFifthString);
startActivity(intent);
}
}
触发异常的部分是我的 Intent
Intent intent=new Intent(this,PetrolPriceActivity.class);
intent.putExtra("URLString",newFifthString);
startActivity(intent);
}
}
我是 Android 使用新手,因此我们将不胜感激。
编辑:当我添加此内容以检查 URL 不为空时,应用程序显示正确的字符串
response = (TextView)findViewById(R.id.textView2);
response.setText(newFifthString);
编辑:logcat 是
08-07 12:11:44.453:我/Choreographer(1257):跳过了 126 帧!
应用程序可能在其主线程上做了太多工作。08-07 12:11:46.313: I/Choreographer(1257): 跳过了 131 帧!
应用程序可能在其主线程上做了太多工作。08-07 12:11:48.033: I/Choreographer(1257): 跳过了 33 帧!
应用程序可能在其主线程上做了太多工作。08-07 12:11:51.753: D/dalvikvm(1257): GC_FOR_ALLOC 释放 137K, 6% 释放 3938K/4152K, 暂停 146ms, 总计 146ms08-07 12:11:52.003:D/AndroidRuntime(1257):关闭虚拟机08-07 12:11:52.003:W/dalvikvm(1257):threadid = 1:线程因未捕获的异常而退出(组= 0xb3a96ba8)08-07 12:11:52.063:E/AndroidRuntime(1257):致命异常:主要08-07 12:11:52.063:E/AndroidRuntime(1257):进程:org.me.myandroidstuff,PID:125708-07 12:11:52.063:E/AndroidRuntime(1257):java.lang.RuntimeException:无法启动 Activity ComponentInfo {org.me.myandroidstuff/org.me.myandroidstuff.PetrolPriceActivity}:java.lang.NullPointerException08-07 12:11:52.063:E/AndroidRuntime(1257):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195)08-07 12:11:52.063:E/AndroidRuntime(1257):在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)08-07 12:11:52.063:E/AndroidRuntime(1257):在android.app.ActivityThread.access $ 800(ActivityThread.java:135)08-07 12:11:52.063:E/AndroidRuntime(1257):在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1196)08-07 12:11:52.063:E/AndroidRuntime(1257):在android.os.Handler.dispatchMessage(Handler.java:102)08-07 12:11:52.063:E/AndroidRuntime(1257):在android.os.Looper.loop(Looper.java:136)08-07 12:11:52.063:E/AndroidRuntime(1257):在android.app.ActivityThread.main(ActivityThread.java:5017)08-07 12:11:52.063:E/AndroidRuntime(1257):在java.lang.reflect.Method.invokeNative( native 方法)08-07 12:11:52.063:E/AndroidRuntime(1257):在java.lang.reflect.Method.invoke(Method.java:515)08-07 12:11:52.063:E/AndroidRuntime(1257):在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:779)08-07 12:11:52.063:E/AndroidRuntime(1257):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)08-07 12:11:52.063:E/AndroidRuntime(1257):在dalvik.system.NativeStart.main( native 方法)08-07 12:11:52.063:E/AndroidRuntime(1257):引起:java.lang.NullPointerException08-07 12:11:52.063:E/AndroidRuntime(1257):在org.me.myandroidstuff.PetrolPriceActivity.onCreate(PetrolPriceActivity.java:53)08-07 12:11:52.063:E/AndroidRuntime(1257):在android.app.Activity.performCreate(Activity.java:5231)08-07 12:11:52.063:E/AndroidRuntime(1257):在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)08-07 12:11:52.063:E/AndroidRuntime(1257):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)08-07 12:11:52.063: E/AndroidRuntime(1257): ... 11 更多
我的 xml 布局
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="invisible"
android:text="@string/thank_you" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<EditText
android:id="@+id/editText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/textView2"
android:layout_toRightOf="@+id/textView2"
android:background="#CCCCCC"
android:ems="10"
android:inputType="textPersonName" >
<requestFocus />
</EditText>
<EditText
android:id="@+id/editText2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/textView2"
android:layout_toRightOf="@+id/textView2"
android:background="#CCCCCC"
android:ems="10"
android:inputType="textPersonName" >
<requestFocus />
</EditText>
<Button
android:id="@+id/button1"
android:layout_width="214dp"
android:layout_height="wrap_content"
android:text="@string/OK" />
这是我的 PetrolPriceActivity 类
package org.me.myandroidstuff;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class PetrolPriceActivity extends Activity
{
private TextView response;
private TextView errorText;
private String result;
private String petrolPriceURL;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.list);
Bundle extras = getIntent().getExtras();
if(extras!=null){
petrolPriceURL =extras.getString("URLString");
}
// Get the TextView object on which to display the results
response = (TextView)findViewById(R.id.title);
try
{
// Get the data from the RSS stream as a string
result = petrolPriceString(petrolPriceURL);
// Do some processing of the data to get the individual parts of the RSS stream
// At some point put this processing into a separate thread of execution
// Display the string in the TextView object just to demonstrate this capability
// This will need to be removed at some point
response.setText(result);
}
catch(IOException ae)
{
// Handle error
response.setText("Error");
// Add error info to log for diagnostics
errorText.setText(ae.toString());
}
}
// End of onCreate
// Method to handle the reading of the data from the RSS stream
private static String petrolPriceString(String urlString)throws IOException
{
String result = "";
InputStream anInStream = null;
int response = -1;
URL url = new URL(urlString);
URLConnection conn = url.openConnection();
// Check that the connection can be opened
if (!(conn instanceof HttpURLConnection))
throw new IOException("Not an HTTP connection");
try
{
// Open connection
HttpURLConnection httpConn = (HttpURLConnection) conn;
httpConn.setAllowUserInteraction(false);
httpConn.setInstanceFollowRedirects(true);
httpConn.setRequestMethod("GET");
httpConn.connect();
response = httpConn.getResponseCode();
// Check that connection is Ok
if (response == HttpURLConnection.HTTP_OK)
{
// Connection is OK so open a reader
anInStream = httpConn.getInputStream();
InputStreamReader in= new InputStreamReader(anInStream);
BufferedReader bin= new BufferedReader(in);
// Read in the data from the RSS stream
String line = new String();
while (( (line = bin.readLine())) != null)
{
result = result + "\n" + line;
}
}
}
catch (Exception ex)
{
throw new IOException("Error connecting");
}
// Return result as a string for further processing
return result;
}
// End of petrolPriceString
// End of Activity class
}
最佳答案
错误是
errorText.setText(ae.toString());
您没有初始化该变量。
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.list);
//////////////////////////////////////////////////////Solution
errorText = (TextView)findViewById(R.id.yourTextView);
Bundle extras = getIntent().getExtras();
if(extras!=null){
petrolPriceURL =extras.getString("URLString");
}
// Get the TextView object on which to display the results
response = (TextView)findViewById(R.id.title);
try
{
// Get the data from the RSS stream as a string
result = petrolPriceString(petrolPriceURL);
// Do some processing of the data to get the individual parts of the RSS stream
// At some point put this processing into a separate thread of execution
// Display the string in the TextView object just to demonstrate this capability
// This will need to be removed at some point
response.setText(result);
}
catch(IOException ae)
{
// Handle error
response.setText("Error");
// Add error info to log for diagnostics
errorText.setText(ae.toString()); //////////This variable is not intialized.
}
}
关于java - android Intent 空指针异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25187097/
我刚接触 C 语言几周,所以对它还很陌生。 我见过这样的事情 * (variable-name) = -* (variable-name) 在讲义中,但它到底会做什么?它会否定所指向的值吗? 最佳答案
我有一个指向内存地址的void 指针。然后,我做 int 指针 = void 指针 float 指针 = void 指针 然后,取消引用它们以获取值。 { int x = 25; vo
我正在与计算机控制的泵进行一些串行端口通信,我用来通信的 createfile 函数需要将 com 端口名称解析为 wchar_t 指针。 我也在使用 QT 创建一个表单并获取 com 端口名称作为
#include "stdio.h" #include "malloc.h" int main() { char*x=(char*)malloc(1024); *(x+2)=3; --
#include #include main() { int an_int; void *void_pointer = &an_int; double *double_ptr = void
对于每个时间步长,我都有一个二维矩阵 a[ix][iz],ix 从 0 到 nx-1 和 iz 从 0 到 nz-1。 为了组装所有时间步长的矩阵,我定义了一个长度为 nx*nz*nt 的 3D 指针
我有一个函数,它接受一个指向 char ** 的指针并用字符串填充它(我猜是一个字符串数组)。 *list_of_strings* 在函数内部分配内存。 char * *list_of_strings
我试图了解当涉及到字符和字符串时,内存分配是如何工作的。 我知道声明的数组的名称就像指向数组第一个元素的指针,但该数组将驻留在内存的堆栈中。 另一方面,当我们想要使用内存堆时,我们使用 malloc,
我有一个 C 语言的 .DLL 文件。该 DLL 中所有函数所需的主要结构具有以下形式。 typedef struct { char *snsAccessID; char *
指针, C语言的精髓 莫队先咕几天, 容我先讲完树剖 (因为后面树上的东西好多都要用树剖求 LCA). 什么是指针 保存变量地址的变量叫做指针. 这是大概的定义, 但是Defad认为
我得到了以下数组: let arr = [ { children: [ { children: [], current: tru
#include int main(void) { int i; int *ptr = (int *) malloc(5 * sizeof(int)); for (i=0;
我正在编写一个程序,它接受一个三位数整数并将其分成两个整数。 224 将变为 220 和 4。 114 将变为 110 和 4。 基本上,您可以使用模数来完成。我写了我认为应该工作的东西,编译器一直说
好吧,我对 C++ 很陌生,我确定这个问题已经在某个地方得到了回答,而且也很简单,但我似乎找不到答案.... 我有一个自定义数组类,我将其用作练习来尝试了解其工作原理,其定义如下: 标题: class
1) this 指针与其他指针有何不同?据我了解,指针指向堆中的内存。如果有指向它们的指针,这是否意味着对象总是在堆中构造? 2)我们可以在 move 构造函数或 move 赋值中窃取this指针吗?
这个问题在这里已经有了答案: 关闭 11 年前。 Possible Duplicate: C : pointer to struct in the struct definition 在我的初学者类
我有两个指向指针的结构指针 typedef struct Square { ... ... }Square; Square **s1; //Representing 2D array of say,
变量在内存中是如何定位的?我有这个代码 int w=1; int x=1; int y=1; int z=1; int main(int argc, char** argv) { printf
#include #include main() { char *q[]={"black","white","red"}; printf("%s",*q+3); getch()
我在“C”类中有以下函数 class C { template void Func1(int x); template void Func2(int x); }; template void
我是一名优秀的程序员,十分优秀!