2015-03-17 10 views
16

Ich habe eine Textansicht, wenn ich darauf klicke, bearbeite ich eine ListView in einem Dialog. Dieser Code funktionierte gut, aber heute gibt es eine Ausnahme.

dies ist mein Code:

tvSelectedFont = (TextView)findViewById(R.id.lblQuoteSelectedFont); 
    tvSelectedFont.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 

      ListView listView = new ListView(context); 
      listView.setAdapter(new ArrayAdapter<String>(context, android.R.layout.simple_list_item_1, 
        new String[] {"Default", "Serif", "Monospace"})); 
      final Dialog dialog = new Dialog(context); 
      dialog.setContentView(listView); 
      dialog.setTitle(R.string.txt_settings_QuotefontName); 

      listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
       @Override 
       public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
        String selectedTypeFace = ((TextView)view).getText().toString(); 
        tvSelectedFont.setText(selectedTypeFace); 
        switch(selectedTypeFace) 
        { 
         case "Serif": 
          selectedQuoteTypeFace = Typeface.SERIF; 
          break; 
         case "Monospace": 
          selectedQuoteTypeFace = Typeface.MONOSPACE; 
          break; 
         default: 
          selectedQuoteTypeFace = Typeface.DEFAULT; 
          break; 
        } 
        tvQuoteTextSample.setTypeface(selectedQuoteTypeFace, selectedQuoteFontStyle); 
        dialog.dismiss(); 
       } 
      }); 

      dialog.show(); 
     } 
    }); 

Der logcat Fehler zeigt dies:

Device driver API version: 29 
User space API version: 29 
03-17 14:33:24.701 23220-23220/com.example.manas.dailyquoteswidget E/﹕ mali: REVISION=Linux-r3p2-01rel3 BUILD_DATE=Tue Jul 22 19:59:34 KST 2014 
03-17 14:33:27.926 23220-23220/com.example.manas.dailyquoteswidget E/AndroidRuntime﹕ FATAL EXCEPTION: main 
Process: com.example.manas.dailyquoteswidget, PID: 23220 
android.content.res.Resources$NotFoundException: Resource is not a Drawable (color or path): TypedValue{t=0x2/d=0x7f0100a7 a=3} 
     at android.content.res.Resources.loadDrawable(Resources.java:3415) 
     at android.content.res.TypedArray.getDrawable(TypedArray.java:602) 
     at android.widget.AbsListView.<init>(AbsListView.java:1089) 
     at android.widget.ListView.<init>(ListView.java:152) 
     at android.widget.ListView.<init>(ListView.java:148) 
     at android.widget.ListView.<init>(ListView.java:144) 
     at com.example.manas.dailyquoteswidget.DailyQuotesWidgetConfigureActivity$6.onClick(DailyQuotesWidgetConfigureActivity.java:182) 
     at android.view.View.performClick(View.java:4640) 
     at android.view.View$PerformClick.run(View.java:19425) 
     at android.os.Handler.handleCallback(Handler.java:733) 
     at android.os.Handler.dispatchMessage(Handler.java:95) 
     at android.os.Looper.loop(Looper.java:146) 
     at android.app.ActivityThread.main(ActivityThread.java:5593) 
     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:1283) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099) 
     at dalvik.system.NativeStart.main(Native Method) 

Cant Figur ist das Problem aus. Irgendwelche Hilfe bitte?

+0

ist das DailyQuotesWidgetConfigureActivity.java:182? – Blackbelt

+0

Hallo, die Zeile 182 ist dies: ListView listView = new ListView (Kontext); listView.setAdapter (neuer ArrayAdapter (Kontext, android.R.layout.simple_list_item_1, neuer String [] {"Standard", "Serif", "Monospace"})); – BuggyCoder

+0

@BuggyCoder: versuchen Sie es als 'dialog.setTitle (v.getContext(). GetResources(). GetString (R.string.txt_settings_QuotefontName))' anstelle von 'dialog.setTitle (R.string.txt_settings_QuotefontName)' –

Antwort

8

Ich fand es heraus, es war kein Problem mit dem Code, aber das Thema. Ich habe vor kurzem das Thema von android:theme="@style/AppTheme" zu android:theme="@style/Theme.AppCompat.NoActionBar" geändert, danach begann das Problem. Ich habe das alte AppTheme wiederhergestellt, als es wieder funktionierte. Es scheint, dass das NoActionBar-Design für Dialogfelder nicht kompatibel war.

+2

Das ist eine Arbeit, keine Lösung. .. – surfer190

69

Ich stieß auf dieses Problem in der letzten App, die ich gemacht habe. In meinem Fall war das Problem, ich habe ein Bild in den Ordner namens Drawable-V21, die nicht in älteren Android API verfügbar ist.

Die Lösung ist, Ihre Zeichnungsdatei in drückbare -... dpi-Ordner zu setzen.

Hoffe, dass hilft.

+2

Danke !! eine sehr einfache Lösung für ein großes Problem. –

1

Ich lief diesen Fehler in einer anderen Situation, und es stellte sich heraus, dass ich aus Versehen ein Zeichen auf R.id.something statt R.drawable.something gesetzt hatte!

+0

Vielen Dank dafür, ich hatte ein Zeichen in meinem XML als '@ id/etwas 'gesetzt und das war die Ursache für diesen Absturz! –

Verwandte Themen