Мне было интересно, может ли кто-нибудь помочь мне. Может быть, хорошо иметь свежую пару глаз, чтобы рассказать мне, что я делаю неправильно, потому что я просто не могу ее найти. Наверное, это нечто тривиальное, но я не вижу его. У меня в основном есть кнопка, которая при нажатии вызывает настраиваемый диалог и просит пользователя сделать выбор между SD-картой или памятью устройства. Я чувствую, что все правильно, по большей части, это просто дает мне ошибку, аналогичную: OnClick ошибки на line71 ..Выпуск с диалоговыми окнами Intent Activities и Alert
Может кто-нибудь еще увидеть проблему ..
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();
}
});
}
}
Благодаря кучу, я действительно ценю это потому, что у меня были проблемы с этим на некоторое время. Это, наверное, какая-то глупая ошибка, которую я пропускаю.
Еще раз спасибо!
ОБНОВЛЕНИЕ LogCat:
06-26 17: 54: 35,119 D/AndroidRuntime (24486): Выключение ВМ 06-26 17: 54: 35.119: Вт/dalvikvm (24486): ThreadId = 1 : выключение нити с неперехваченным исключением (группа = 0x40015560) 06-26 17: 54: 35.119: E/AndroidRuntime (24486): FATAL EXCEPTION: main 06-26 17: 54: 35.119: E/AndroidRuntime (24486): java .lang.NullPointerException 06-26 17: 54: 35.119: E/AndroidRuntime (24486): at my.edu.org.MediaActivity $ 1.onClick (MediaActivity.java:71) 06-26 17: 54: 35.119: E/AndroidRuntime (24486): at android.view.View.performClick (View.java:2485) 06-26 17: 54: 35.119: E/AndroidRunti me (24486): at android.view.View $ PerformClick.run (View.java:9080) 06-26 17: 54: 35.119: E/AndroidRuntime (24486): at android.os.Handler.handleCallback (Handler. java: 587) 06-26 17: 54: 35.119: E/AndroidRuntime (24486): at android.os.Handler.dispatchMessage (Handler.java:92) 06-26 17: 54: 35.119: E/AndroidRuntime (24486): at android.os.Looper.loop (Looper.java:130) 06-26 17: 54: 35.119: E/AndroidRuntime (24486): at android.app.ActivityThread.main (ActivityThread.java:3683) 06-26 17: 54: 35.119: E/AndroidRuntime (24486): at java.lang.reflect.Method.invokeNative (собственный метод) 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.j ava: 850) 06-26 17: 54: 35.119: E/AndroidRuntime (24486): at 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) ////////////////////// реализация onClick из предложений droider.
@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;
}
}
Вы можете разместить весь LogCat? – Nerd