1

我最近开始在 Android 中编程,但遇到了一个小问题。
我想做的是:我有 NewsActivity 和 NewsRows.class (在同一个包中)。
所以新闻活动只是创建一个新的 NewsRows 对象并告诉它用新的行填充 TableLayout。
只要我尝试从资源中添加图像,它就可以正常工作......该应用程序一直在崩溃。
调试器告诉我它找不到资源,但我不知道为什么!

我的代码在这里:
News Acitivty

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);
4

3 回答 3

2

您正在尝试将图像设置为背景颜色:更改此:

 image.setBackgroundColor(R.drawable.myimage);

对此:

 image.setBackgroundResource(R.drawable.myimage);
于 2012-05-28T11:02:49.523 回答
0

您不能将可绘制对象设置为 ImageView 的背景颜色,这就是为什么您的 logcat 上有资源未找到异常!

 image.setBackgroundColor(R.drawable.myimage);

将其更改为:

image.setBackgroundResource(R.drawable.myimage);

也尝试改变这个

public static void createNewsEntries(Activity contextActivity) 

public static void createNewsEntries(Context contextActivity)
于 2012-05-28T11:14:36.103 回答
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 中,它就可以工作......

于 2012-05-28T11:31:20.040 回答