我想知道是否有人可以帮助我。我的应用程序中基本上有一个列表视图,它从 lastFM 中提取数据。该行本身链接到艺术家曲目页面,按钮链接到艺术家页面。添加. NullPointer
_
artistButton.setOnClickListener(this)
有人可以帮助我吗,这实际上是我需要实现的最后一个功能,我很难过。
在此先感谢所有可以提供帮助的人:)
public class TrackDataAdapter extends BaseAdapter implements OnClickListener {
private static final String debugTag = "TrackDataAdapter";
private Activity activity;
private ArrayList<TrackData> data;
private static LayoutInflater inflater=null;
public ImageLoader imageLoader;
public TrackDataAdapter (TrackActivity a, ArrayList<TrackData> d)
{
activity = a;
data = d;
inflater = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
imageLoader = new ImageLoader(activity.getApplicationContext());
}
public int getCount() {
return data.size();
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View vi=convertView;
if(convertView==null)
vi = inflater.inflate(R.layout.trackrow, null);
TextView artistName=(TextView)vi.findViewById(R.id.artist_name);
ImageView image=(ImageView)vi.findViewById(R.id.album_icon);
TextView trackName=(TextView)vi.findViewById(R.id.track_name);
Button artistButton = (Button)vi.findViewById(R.id.track_button);
artistName.setText(data.get(position).getArtist());
trackName.setText(data.get(position).getName());
imageLoader.DisplayImage(data.get(position).getImageUrl(), image);
vi.setId(position);
vi.setOnClickListener(this);
artistButton.setOnClickListener(this);
return vi;
}
@Override
public void onClick(View v) {
Log.d("OnClick", "button clicked");
if (v instanceof Button) {
Log.d("OnClick" , "Instance of button type");
Intent intent = new Intent(android.content.Intent.ACTION_VIEW,
Uri.parse(data.get(v.getId()).getArtistUrl()));
this.activity.startActivity(intent);
}
else if (v instanceof View) {
Log.d("OnClick" , "Instance of button type");
Intent intent = new Intent(android.content.Intent.ACTION_VIEW,
Uri.parse(data.get(v.getId()).getTrackUrl()));
this.activity.startActivity(intent);
}
}
}
这是我的 trackrow.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/background"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/rowselector"
android:orientation="horizontal" >
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:paddingLeft="4dp" >
<ImageView
android:id="@+id/album_icon"
android:layout_width="32dip"
android:layout_height="32dip"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:scaleType="fitXY"
android:src="@drawable/blank" >
</ImageView>
<TextView
android:id="@+id/track_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="4dip"
android:layout_toRightOf="@+id/album_icon"
android:shadowColor="@color/black"
android:shadowDx="0"
android:shadowDy="0"
android:shadowRadius="0.5"
android:textColor="#777777"
android:textStyle="bold" >
</TextView>
<TextView
android:id="@+id/artist_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/track_name"
android:layout_marginLeft="4dip"
android:layout_toRightOf="@+id/album_icon"
android:text="Best Badger: " >
</TextView>
<Button
android:id="@+id/track_button"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:text="Artist" >
</Button>
</RelativeLayout>
</RelativeLayout>