0

我想顯示一個對話框,點擊我的表格行。我的表格行是動態生成的,有3列.1 ImageView和2 TextViews。Android,使動態生成的表格行可點擊

我的錶行是通過這種循環

for (i = 0; i < name.length; i++) 
{ 
    tr = new TableRow(this); 

    ImageView iv = new ImageView(this); 
    tr.setClickable(true); 
    tr.setOnClickListener(this); 
    try { 
     url = new URL(image_url[i]); 
    } catch (MalformedURLException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
    InputStream content = null; 
    try { 
     content = (InputStream)url.getContent(); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
    Drawable d = Drawable.createFromStream(content , "src"); 
    iv.setImageDrawable(d); 
    tr.addView(iv,new LayoutParams(150,150)); 
    tv2 = new TextView(this); 
    tv3 = new TextView(this); 

    tv2.setText(name[i]); 
    tv3.setText(location[i]); 

    tv2.setPadding(10, 0, 0, 0); 

    tv3.setPadding(10, 0, 0, 0); 
    tr.setPadding(0, 1, 0, 1); 

    tr.addView(tv2); // add TextView to row. 
    tr.addView(tv3); // add TextView to row. 

    tl.addView(tr); 
} 

我已經嘗試了這麼多的事情,使各行可點擊生成,但似乎沒有任何工作。 onclicklistner方法調用我在我的代碼中定義的onClick()方法,但它永遠不會被調用。請讓我知道通過哪種方式可以調用顯示對話框方法來點擊特定行。謝謝

回答

1

嗯,我懷疑你沒有在你的班級中實現View.OnClickListener接口,你把這個作爲'this'傳遞給tr.setOnClickListener(this);你不應該自己調用onClick。

你應該做

class MyActivity implements View.OnClickListener { 

@Override 
public void onClick(View view) { 

// your click event 
} 

//for loop with dynamically generated rows 
public void createTable() { 
// your code with tr.setOnClickListener(this); 
} 
+0

解決了這個問題,謝謝 – iamtheone 2014-04-29 21:01:34

相關問題