2016-08-02 53 views
-2

我有一個listview它從其他活動獲取數據。我有一千個循環。當用戶單擊列表項時,將打開一個警報對話框。直到昨天爲止,我在今天添加了所有數據的信息。出現警告。超過65535字節的限制onItemClick

這是我的名單;

ListView sonuclistesi=(ListView) findViewById(R.id.sonuclistesi); 
ArrayAdapter<String> veriadaptoru=new Listeozellikleri(this,veriler); 
sonuclistesi.setAdapter(veriadaptoru); 

這是列表的onclick事件;

sonuclistesi.setOnItemClickListener(new OnItemClickListener() { 
     public void onItemClick(AdapterView<?> parent, View view, 
       int position, long id) { 
String veri = veriler.get(position).toString(); 

if(veri.equals("car")){ 
       AlertDialog alertDialog = new AlertDialog.Builder(sonuclar.this).create(); 
       alertDialog.setCanceledOnTouchOutside(false); 
       alertDialog.setCancelable(false); 
       alertDialog.getWindow().getAttributes().windowAnimations = R.style.dialog_animation; 
       alertDialog.setTitle("Car"); 
       alertDialog.setIcon(R.drawable.car); 
       alertDialog.setMessage(sonuclar.this.getString(R.string.car)); 

         alertDialog.setButton(Dialog.BUTTON_NEGATIVE, sonuclar.this.getString(R.string.kapat), new DialogInterface.OnClickListener() { 
          public void onClick(DialogInterface dialog, int which) { 

          }; 


        });    


       alertDialog.show(); 
       alertDialog.getButton(alertDialog.BUTTON_NEGATIVE).setTextColor(Color.parseColor("#445981")); 
       alertDialog.getButton(alertDialog.BUTTON_POSITIVE).setTextColor(Color.parseColor("#445981")); 
      } 
      //... 1 thousand if again and again... 

     } 
    }); 

那我該怎麼辦?我讀了一些關於分法的文章。但有沒有爲我工作...

+0

1000 ???你會consoder refactory,而不是? –

+0

我必須這樣做.. –

+0

'今天。出現警告.'。哪個警告?在那個時刻? – greenapps

回答

0

所以你打的東西是在dex文件中65K類限制。如果你碰到這個,除非你正在寫Facebook,否則你做的事情是非常錯誤的。如果你正在編寫代碼,並且如果像上面這樣的語句粘貼超過2或3,你就錯了。如果你真的認爲這是正確的做法....我不認爲我可以教你如何在這裏的答案空間正確做到這一點。我建議你學習編程基礎知識,特別是面向對象編程和抽象。你實際上不知道如何編程。

+0

那麼我怎麼才能正確地做到這一點你能解釋一下嗎?如果數據是汽車,我想顯示一個彈出窗口並提供信息。我怎樣才能用更少的代碼呢? –

+0

使用單擊監聽器類來接收可變部分的參數,而不是從字面上看1000個匿名類。 –

相關問題