我想知道是否有人可以帮助我。有一双新的眼睛来告诉我我做错了什么可能会很好,因为我就是找不到它。这可能是微不足道的,但我看不到。我基本上有一个按钮,单击该按钮会弹出一个自定义对话框,并要求用户在 SD 卡或设备内存之间做出选择。我觉得我在大多数情况下一切都正确,只是给了我一个类似于:onClick error on line71 的错误。
其他人能看到问题吗..
public class MediaActivity extends Activity
{
/** Called when the activity is first created. */
AlertDialog.Builder builder;
AlertDialog alertDialog;
ImageButton sdImage;
ImageButton deviceImage;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button startApp = (Button) findViewById(R.id.startButton);
startApp.setOnClickListener(new View.OnClickListener() {
public void onClick(View view)
{
Context mContext = MediaActivity.this;
LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(LAYOUT_INFLATER_SERVICE);
View layout = inflater.inflate(R.layout.custlayout, (ViewGroup) findViewById(R.id.layout_root));
TextView text = (TextView) layout.findViewById(R.id.text);
//text.setText("Upload an Image or Video");
builder = new AlertDialog.Builder(mContext);
builder.setView(layout);
alertDialog = builder.create();
sdImage= (ImageButton) findViewById(R.id.sdImageButton);
deviceImage = (ImageButton) findViewById(R.id.deviceImageButton);
sdImage.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0)
{
// Write your code here to invoke YES event
Intent goToSD = new Intent(arg0.getContext(),
Sdcard.class);
startActivity(goToSD);
}
});
deviceImage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v)
{
// TODO Auto-generated method stub
}
});
// Showing Alert Message
alertDialog.show();
}
});
}
}
谢谢一堆我真的很感激这一点,因为我已经有一段时间遇到麻烦了。这可能是我忽略的某种愚蠢的错误。
再次感谢你!
更新日志:
06-26 17:54:35.119: D/AndroidRuntime(24486): 关闭 VM 06-26 17:54:35.119: W/dalvikvm(24486): threadid=1: 线程退出未捕获异常 (group=0x40015560) 06 -26 17:54:35.119:E/AndroidRuntime(24486):致命异常:主要 06-26 17:54:35.119:E/AndroidRuntime(24486):java.lang.NullPointerException 06-26 17:54:35.119:E /AndroidRuntime(24486): 在 my.edu.org.MediaActivity$1.onClick(MediaActivity.java:71) 06-26 17:54:35.119: E/AndroidRuntime(24486): 在 android.view.View.performClick(查看.java:2485) 06-26 17:54:35.119: E/AndroidRuntime(24486): 在 android.view.View$PerformClick.run(View.java:9080) 06-26 17:54:35.119: E/AndroidRuntime (24486): 在 android.os.Handler.handleCallback(Handler.java:587) 06-26 17:54:35.119: E/AndroidRuntime(24486): 在 android.os.Handler.dispatchMessage(Handler.java:92) 06-26 17:54:35.119:E/AndroidRuntime(24486): 在 android.os.Looper.loop(Looper.java:130) 06-26 17:54:35.119: E/AndroidRuntime(24486): 在 android.app.ActivityThread.main(ActivityThread.java :3683) 06-26 17:54:35.119: E/AndroidRuntime(24486): at java.lang.reflect.Method.invokeNative(Native Method) 06-26 17:54:35.119: E/AndroidRuntime(24486): at java.lang.reflect.Method.invoke(Method.java:507) 06-26 17:54:35.119: E/AndroidRuntime(24486): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java :850) 06-26 17:54:35.119: E/AndroidRuntime(24486): 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:608) 06-26 17:54:35.119: E/AndroidRuntime (24486):在dalvik.system.NativeStart.main(Native Method)////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////130) 06-26 17:54:35.119: E/AndroidRuntime(24486): 在 android.app.ActivityThread.main(ActivityThread.java:3683) 06-26 17:54:35.119: E/AndroidRuntime(24486): 在java.lang.reflect.Method.invokeNative(Native Method) 06-26 17:54:35.119: E/AndroidRuntime(24486): at java.lang.reflect.Method.invoke(Method.java:507) 06-26 17 :54:35.119: E/AndroidRuntime(24486): 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:850) 06-26 17:54:35.119: E/AndroidRuntime(24486): 在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:608) 06-26 17:54:35.119: E/AndroidRuntime(24486): at dalvik.system.NativeStart.main(Native Method) //// //////////////// 来自droider的建议的onClick实现。130) 06-26 17:54:35.119: E/AndroidRuntime(24486): 在 android.app.ActivityThread.main(ActivityThread.java:3683) 06-26 17:54:35.119: E/AndroidRuntime(24486): 在java.lang.reflect.Method.invokeNative(Native Method) 06-26 17:54:35.119: E/AndroidRuntime(24486): at java.lang.reflect.Method.invoke(Method.java:507) 06-26 17 :54:35.119: E/AndroidRuntime(24486): 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:850) 06-26 17:54:35.119: E/AndroidRuntime(24486): 在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:608) 06-26 17:54:35.119: E/AndroidRuntime(24486): at dalvik.system.NativeStart.main(Native Method) //// //////////////// 来自droider的建议的onClick实现。3683) 06-26 17:54:35.119: E/AndroidRuntime(24486): 在 java.lang.reflect.Method.invokeNative(Native Method) 06-26 17:54:35.119: E/AndroidRuntime(24486): 在 java .lang.reflect.Method.invoke(Method.java:507) 06-26 17:54:35.119: E/AndroidRuntime(24486): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java: 850) 06-26 17:54:35.119: E/AndroidRuntime(24486): 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:608) 06-26 17:54:35.119: E/AndroidRuntime( 24486):在dalvik.system.NativeStart.main(Native Method)/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////3683) 06-26 17:54:35.119: E/AndroidRuntime(24486): 在 java.lang.reflect.Method.invokeNative(Native Method) 06-26 17:54:35.119: E/AndroidRuntime(24486): 在 java .lang.reflect.Method.invoke(Method.java:507) 06-26 17:54:35.119: E/AndroidRuntime(24486): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java: 850) 06-26 17:54:35.119: E/AndroidRuntime(24486): 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:608) 06-26 17:54:35.119: E/AndroidRuntime( 24486):在dalvik.system.NativeStart.main(Native Method)/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////E/AndroidRuntime(24486): 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:850) 06-26 17:54:35.119: E/AndroidRuntime(24486): 在 com.android.internal .os.ZygoteInit.main(ZygoteInit.java:608) 06-26 17:54:35.119: E/AndroidRuntime(24486): at dalvik.system.NativeStart.main(Native Method) ///////// //////////// 来自droider的建议的onClick实现。E/AndroidRuntime(24486): 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:850) 06-26 17:54:35.119: E/AndroidRuntime(24486): 在 com.android.internal .os.ZygoteInit.main(ZygoteInit.java:608) 06-26 17:54:35.119: E/AndroidRuntime(24486): at dalvik.system.NativeStart.main(Native Method) ///////// //////////// 来自droider的建议的onClick实现。
@Override
public void onClick(View v)
{
switch(v.getId())
{
case R.id.sdImageButton:
Intent goToSD = new Intent(v.getContext(),
Sdcard.class);
startActivity(goToSD);
Toast.makeText(getApplicationContext(), "sdclicked", Toast.LENGTH_SHORT).show();
break;
case R.id.deviceImageButton:
break;
default:
break;
}
}