2

ボタンを配置しようとしていますが、Eclipse が「ローカル変数ボタンが初期化されていない可能性があります」というエラーをスローし続ける理由がわかりません。xmlファイル「rssfeedadapter_layout」にボタンを追加しました。しかし、コードで呼び出すことはできません。私はこれを試しています:

RssReaderListAdapter.java

package com.rssfeed.adapter;

import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.List;

import org.json.JSONException;
import org.json.JSONObject;

import com.rssfeed.R;
import com.rssfeed.helper.RssFeedStructure;

import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.text.SpannableString;
import android.text.Spanned;
import android.text.style.UnderlineSpan;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.TextView;

public class RssReaderListAdapter extends ArrayAdapter<RssFeedStructure> {

List<RssFeedStructure> imageAndTexts1 =null;
public RssReaderListAdapter(Activity activity, List<RssFeedStructure> imageAndTexts) {
super(activity, 0, imageAndTexts);
imageAndTexts1 = imageAndTexts;

}


@Override
public View getView(int position, View convertView, ViewGroup parent) {

Activity activity = (Activity) getContext();
LayoutInflater inflater = activity.getLayoutInflater();


View rowView = inflater.inflate(R.layout.rssfeedadapter_layout, null);
TextView title = (TextView) rowView.findViewById(R.id.feed_text);
TextView description = (TextView) rowView.findViewById(R.id.feed_updatetime);
ImageButton button = (ImageButton) button.findViewById(R.id.button_web);//Eclipse keeps throwing error in this line
ImageView imageView = (ImageView) rowView.findViewById(R.id.feed_image);
ImageLoader imgLoader;
imgLoader = new ImageLoader(activity);
        Log.d("rssfeed", "imageAndTexts1.get(position).getImgLink() :: " +imageAndTexts1.get(position).getImgLink() +" :: " +imageAndTexts1.get(position).getTitle());
        title.setText(imageAndTexts1.get(position).getTitle());
        description.setText(imageAndTexts1.get(position).getDescription());
        if(imageAndTexts1.get(position).getImgLink() !=null){

            String imageUrl= imageAndTexts1.get(position).getImgLink();
            imgLoader.DisplayImage(imageUrl, imageView);

            }

return rowView;

}

}
4

2 に答える 2

4

使用する

ImageButton button = (ImageButton) rowView.findViewById(R.id.button_web);

それ以外の

ImageButton button = (ImageButton) button.findViewById(R.id.button_web);

ボタンの代わりにレイアウトrowViewから初期化ボタンを取得するために使用する必要がありますrssfeedadapter_layout

于 2013-01-28T15:55:28.973 に答える
2

変化する:

button.findViewById(R.id.button_web);

に:

rowView.findViewById(R.id.button_web);
于 2013-01-28T15:55:33.800 に答える