我最近开始在Android编程,我遇到了一个小问题。
我想做的是:
我有NewsActivity和NewsRows.class(在同一个包中)。
因此,新闻活动只会创建一个新的NewsRows对象,并告诉它用新行填充TableLayout
只要我尝试从资源中添加图像,它就能正常工作......应用程序只会不断崩溃
调试器告诉我它无法找到资源,但我无法找到原因!
我的代码在这里:
新闻活动
package de.myapp.app.activites.news;
import de.myapp.app.R;
import android.app.Activity;
import android.os.Bundle;
public class News extends Activity {
NewsRows rowClass = new NewsRows();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.news);
NewsRows.createNewsEntries(this);
}
}
NewsRows.class
package de.myapp.app.activites.news;
import de.myapp.app.R;
import android.app.Activity;
import android.widget.ImageView;
import android.widget.TableLayout;
import android.widget.TableRow;
import android.widget.TextView;
public class NewsRows {
static TextView title;
static TableRow tRow;
static TableLayout tLayout;
public NewsRows() {
}
public static void createNewsEntries(Activity contextActivity) {
ImageView image = new ImageView(contextActivity);
image.setBackgroundColor(R.drawable.myimage);
tLayout = (TableLayout) contextActivity.findViewById(R.id.NewsTable);
for(int a = 0; a < 100; a++) {
tRow = new TableRow(contextActivity);
title = new TextView(contextActivity);
//tRow.addView(image);
title.setText("This is a test.");
tRow.addView(title);
tLayout.addView(tRow);
}
}
}
编辑: 第一行
image.setBackgroundColor(R.drawable.myimage);<br />
实际上应该是:
image.setImageResource(R.drawable.myimage);
答案 0 :(得分:2)
您正尝试将图像设置为背景颜色: 改变这个:
image.setBackgroundColor(R.drawable.myimage);
到此:
image.setBackgroundResource(R.drawable.myimage);
答案 1 :(得分:0)
您不能将drawable设置为ImageView的背景颜色,这就是您在logcat上找到资源未找到异常的原因!!
image.setBackgroundColor(R.drawable.myimage);
将其更改为:
image.setBackgroundResource(R.drawable.myimage);
还尝试更改此
public static void createNewsEntries(Activity contextActivity)
与
public static void createNewsEntries(Context contextActivity)
答案 2 :(得分:0)
有趣的事实:
TableLayout tLayout = (TableLayout) findViewById(R.id.NewsTable);
TableRow tRow = new TableRow(this);
ImageView image = new ImageView(this);
image.setImageResource(R.drawable.myimage);
tRow.addView(image);
tLayout.addView(tRow);
如果我把这段代码放在News.Activity中就可以了......