Java NetworkImageView类型中的方法setImageUrl(String,ImageLoader)不适用于参数(Uri,ImageLoader)
简而言之,我试图填充一个活动,该活动将显示从JSON数据填充的信息。我已经成功地检索了字符串,但问题解决了检索图像并将其转换为ImageView 我在eclipse中收到以下错误:Java NetworkImageView类型中的方法setImageUrl(String,ImageLoader)不适用于参数(Uri,ImageLoader),java,android,json,android-layout,android-activity,Java,Android,Json,Android Layout,Android Activity,简而言之,我试图填充一个活动,该活动将显示从JSON数据填充的信息。我已经成功地检索了字符串,但问题解决了检索图像并将其转换为ImageView 我在eclipse中收到以下错误: The method setImageUrl(String, ImageLoader) in the type NetworkImageView is not applicable for the arguments (Uri, ImageLoader)" at the line hsvimage1.setImage
The method setImageUrl(String, ImageLoader) in the type NetworkImageView is not applicable for the arguments (Uri, ImageLoader)" at the line hsvimage1.setImageUrl(url1, mImageLoader)
对于以下行:
hsvimage1.setImageUrl(url1, mImageLoader);
hsvimage2.setImageUrl(url2, mImageLoader);
hsvimage3.setImageUrl(url3, mImageLoader);
下面是整个活动代码
public class CasualEventsSingleItemActivity extends Activity {
// Declare Variables
String list_item_name;
String list_item_description;
Uri list_item_bac;
String list_item_price;
String list_item_location;
String single_list_item_description;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_events_single_item);
ImageLoader mImageLoader = new ImageLoader(Volley.newRequestQueue(this),
new ImageLoader.ImageCache() {
private final LruCache<String, Bitmap>
cache = new LruCache<String, Bitmap>(20);
@Override
public Bitmap getBitmap(String url) {
return cache.get(url);
}
@Override
public void putBitmap(String url, Bitmap bitmap) {
cache.put(url, bitmap);
}
});
Intent i = getIntent();
list_item_name = i.getStringExtra("list_item_name");
list_item_location = i.getStringExtra("list_item_location");
list_item_bac = Uri.parse(i.getStringExtra("list_item_bac"));
single_list_item_description = i.getStringExtra("single_list_item_description");
TextView txtname = (TextView) findViewById(R.id.name);
TextView txtlocation = (TextView) findViewById(R.id.location);
TextView txtsdescription = (TextView) findViewById(R.id.sdescription);
NetworkImageView hsvimage1 = (NetworkImageView) findViewById(R.id.hsvimage1);
NetworkImageView hsvimage2 = (NetworkImageView) findViewById(R.id.hsvimage2);
NetworkImageView hsvimage3 = (NetworkImageView) findViewById(R.id.hsvimage3);
// Get image URLs from your previous network request...
// I could not determine where this is stored from code in your question.
Uri url1 = list_item_bac; // e.g. http://example.com/images/image1.png
Uri url2 = list_item_bac;
Uri url3 = list_item_bac;
// Set the URL of the image that should be loaded into this view, and
// specify the ImageLoader that will be used to make the request.
hsvimage1.setImageUrl(url1, mImageLoader);
hsvimage2.setImageUrl(url2, mImageLoader);
hsvimage3.setImageUrl(url3, mImageLoader);
// Set results to the TextViews
txtname.setText(list_item_name);
txtlocation.setText(list_item_location);
txtsdescription.setText(single_list_item_description);
Button mConfirm2 = (Button)findViewById(R.id.bConfirm2);
mConfirm2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ParseUser currentUser = ParseUser.getCurrentUser();
// Create the class and the columns
currentUser.saveInBackground();
currentUser.put("ActivityName", list_item_name);
currentUser.saveInBackground(new SaveCallback() {
@Override
public void done(ParseException e) {
setProgressBarIndeterminateVisibility(false);
if (e == null) {
// Success!
Intent intent = new Intent(CasualEventsSingleItemActivity.this, usermatch.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);
}
else {
AlertDialog.Builder builder = new AlertDialog.Builder(CasualEventsSingleItemActivity.this);
builder.setMessage(e.getMessage())
.setTitle(R.string.signup_error_title)
.setPositiveButton(android.R.string.ok, null);
AlertDialog dialog = builder.create();
dialog.show();
}
}
});
//CasualEventsSingleItemActivity.this.startActivity(new Intent(CasualEventsSingleItemActivity.this, MatchingActivity.class));
}
});
}
}
此活动的布局
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/blue_bac3"
android:gravity="center"
android:orientation="vertical" >
<TextView
android:id="@+id/name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginLeft="15dp"
android:layout_marginTop="10dp"
android:layout_marginRight="15dp"
android:alpha="0.9"
android:paddingBottom="3dp"
android:shadowColor="#000000"
android:shadowDx="3"
android:shadowDy="3"
android:shadowRadius="0.01"
android:textColor="#82CAFF"
android:textSize="24sp" />
<TextView
android:id="@+id/location"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/name"
android:layout_centerHorizontal="true"
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp"
android:alpha="0.8"
android:paddingBottom="5dp"
android:shadowColor="#000000"
android:shadowDx="3"
android:shadowDy="3"
android:shadowRadius="0.01"
android:textAlignment="center"
android:textColor="#f2f2f2"
android:textSize="16sp" />
<ImageView
android:id="@+id/dividertop"
android:layout_width="370dp"
android:layout_centerHorizontal="true"
android:layout_height="wrap_content"
android:layout_below="@+id/location"
android:alpha="0.6"
android:background="@drawable/divider11"
android:paddingBottom="3dp" />
<ImageView
android:id="@+id/dividerbottom"
android:layout_width="370dp"
android:layout_centerHorizontal="true"
android:layout_height="wrap_content"
android:layout_below="@+id/vsvdescription"
android:alpha="0.6"
android:background="@drawable/divider11"
android:paddingBottom="3dp" />
<ImageView
android:id="@+id/image_head"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:background="#000000"
android:padding="1dp" />
<HorizontalScrollView
android:id="@+id/isgallery"
android:layout_width="370dp"
android:layout_height="90dp"
android:layout_centerHorizontal="true"
android:layout_below="@+id/dividerbottom"
android:layout_marginTop="8dp"
>
<LinearLayout
android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<com.android.volley.toolbox.NetworkImageView
android:id="@+id/hsvimage1"
android:layout_width="148dp"
android:layout_height="90dp"
android:layout_marginRight="6dp"
android:layout_alignParentRight="true"
android:background="#fff"
android:padding="1dp" />
<com.android.volley.toolbox.NetworkImageView
android:id="@+id/hsvimage2"
android:layout_width="148dp"
android:layout_height="90dp"
android:layout_marginRight="6dp"
android:layout_alignParentRight="true"
android:background="#000000"
android:padding="1dp" />
<com.android.volley.toolbox.NetworkImageView
android:id="@+id/hsvimage3"
android:layout_width="148dp"
android:layout_height="90dp"
android:layout_marginRight="6dp"
android:layout_alignParentRight="true"
android:background="#CCC"
android:padding="1dp" />
<com.android.volley.toolbox.NetworkImageView
android:id="@+id/hsvimage4"
android:layout_width="148dp"
android:layout_height="90dp"
android:layout_alignParentRight="true"
android:background="#000000"
android:padding="1dp" />
</LinearLayout>
</HorizontalScrollView>
<Button
android:id="@+id/bConfirm2"
android:layout_width="90dp"
android:layout_height="50dp"
android:layout_below="@+id/isgallery"
android:layout_centerHorizontal="true"
android:alpha="0.7"
android:layout_marginTop="10dp"
android:background="@drawable/gray_bac"
android:text="Confirm"
android:textColor="#2B3856"
android:textStyle="bold" />
<ScrollView
android:id="@+id/vsvdescription"
android:layout_width="370dp"
android:layout_height="250dp"
android:layout_marginTop="7dp"
android:layout_marginBottom="7dp"
android:padding="5dp"
android:layout_centerHorizontal="true"
android:layout_below="@+id/dividertop"
>
<RelativeLayout
android:orientation="vertical"
android:gravity="center"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/sdescription"
android:layout_width="370dp"
android:layout_height="250dp"
android:gravity="center"
android:alpha="0.65"
android:textColor="#ffffff"
android:textSize="18sp" />
</RelativeLayout>
</ScrollView>
</RelativeLayout>
提前谢谢
更新logcat消息
08-29 13:15:32.355: E/AndroidRuntime(1247): FATAL EXCEPTION: main
08-29 13:15:32.355: E/AndroidRuntime(1247): Process: com.dooba.beta, PID: 1247
08-29 13:15:32.355: E/AndroidRuntime(1247): java.lang.NullPointerException
08-29 13:15:32.355: E/AndroidRuntime(1247): at com.android.volley.Request.<init>(Request.java:130)
08-29 13:15:32.355: E/AndroidRuntime(1247): at com.android.volley.toolbox.ImageRequest.<init>(ImageRequest.java:71)
08-29 13:15:32.355: E/AndroidRuntime(1247): at com.android.volley.toolbox.ImageLoader.get(ImageLoader.java:220)
08-29 13:15:32.355: E/AndroidRuntime(1247): at com.android.volley.toolbox.ImageLoader.get(ImageLoader.java:171)
08-29 13:15:32.355: E/AndroidRuntime(1247): at com.android.volley.toolbox.NetworkImageView.loadImageIfNecessary(NetworkImageView.java:140)
08-29 13:15:32.355: E/AndroidRuntime(1247): at com.android.volley.toolbox.NetworkImageView.onLayout(NetworkImageView.java:180)
08-29 13:15:32.355: E/AndroidRuntime(1247): at android.view.View.layout(View.java:14817)
08-29 13:15:32.355: E/AndroidRuntime(1247): at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1671)
08-29 13:15:32.355: E/AndroidRuntime(1247): at android.widget.LinearLayout.layoutHorizontal(LinearLayout.java:1660)
08-29 13:15:32.355: E/AndroidRuntime(1247): at android.widget.LinearLayout.onLayout(LinearLayout.java:1436)
08-29 13:15:32.355: E/AndroidRuntime(1247): at android.view.View.layout(View.java:14817)
08-29 13:15:32.355: E/AndroidRuntime(1247): at android.view.ViewGroup.layout(ViewGroup.java:4631)
08-29 13:15:32.355: E/AndroidRuntime(1247): at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453)
08-29 13:15:32.355: E/AndroidRuntime(1247): at android.widget.HorizontalScrollView.onLayout(HorizontalScrollView.java:1474)
08-29 13:15:32.355: E/AndroidRuntime(1247): at android.view.View.layout(View.java:14817)
08-29 13:15:32.355: E/AndroidRuntime(1247): at android.view.ViewGroup.layout(ViewGroup.java:4631)
08-29 13:15:32.355: E/AndroidRuntime(1247): at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1055)
08-29 13:15:32.355: E/AndroidRuntime(1247): at android.view.View.layout(View.java:14817)
08-29 13:15:32.355: E/AndroidRuntime(1247): at android.view.ViewGroup.layout(ViewGroup.java:4631)
08-29 13:15:32.355: E/AndroidRuntime(1247): at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453)
08-29 13:15:32.355: E/AndroidRuntime(1247): at android.widget.FrameLayout.onLayout(FrameLayout.java:388)
08-29 13:15:32.355: E/AndroidRuntime(1247): at android.view.View.layout(View.java:14817)
08-29 13:15:32.355: E/AndroidRuntime(1247): at android.view.ViewGroup.layout(ViewGroup.java:4631)
08-29 13:15:32.355: E/AndroidRuntime(1247): at com.android.internal.widget.ActionBarOverlayLayout.onLayout(ActionBarOverlayLayout.java:374)
08-29 13:15:32.355: E/AndroidRuntime(1247): at android.view.View.layout(View.java:14817)
08-29 13:15:32.355: E/AndroidRuntime(1247): at android.view.ViewGroup.layout(ViewGroup.java:4631)
08-29 13:15:32.355: E/AndroidRuntime(1247): at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453)
08-29 13:15:32.355: E/AndroidRuntime(1247): at android.widget.FrameLayout.onLayout(FrameLayout.java:388)
08-29 13:15:32.355: E/AndroidRuntime(1247): at android.view.View.layout(View.java:14817)
08-29 13:15:32.355: E/AndroidRuntime(1247): at android.view.ViewGroup.layout(ViewGroup.java:4631)
08-29 13:15:32.355: E/AndroidRuntime(1247): at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:1987)
08-29 13:15:32.355: E/AndroidRuntime(1247): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1744)
08-29 13:15:32.355: E/AndroidRuntime(1247): at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1000)
08-29 13:15:32.355: E/AndroidRuntime(1247): at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5670)
08-29 13:15:32.355: E/AndroidRuntime(1247): at android.view.Choreographer$CallbackRecord.run(Choreographer.java:761)
08-29 13:15:32.355: E/AndroidRuntime(1247): at android.view.Choreographer.doCallbacks(Choreographer.java:574)
08-29 13:15:32.355: E/AndroidRuntime(1247): at android.view.Choreographer.doFrame(Choreographer.java:544)
08-29 13:15:32.355: E/AndroidRuntime(1247): at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:747)
08-29 13:15:32.355: E/AndroidRuntime(1247): at android.os.Handler.handleCallback(Handler.java:733)
08-29 13:15:32.355: E/AndroidRuntime(1247): at android.os.Handler.dispatchMessage(Handler.java:95)
08-29 13:15:32.355: E/AndroidRuntime(1247): at android.os.Looper.loop(Looper.java:136)
08-29 13:15:32.355: E/AndroidRuntime(1247): at android.app.ActivityThread.main(ActivityThread.java:5017)
08-29 13:15:32.355: E/AndroidRuntime(1247): at java.lang.reflect.Method.invokeNative(Native Method)
08-29 13:15:32.355: E/AndroidRuntime(1247): at java.lang.reflect.Method.invoke(Method.java:515)
08-29 13:15:32.355: E/AndroidRuntime(1247): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
08-29 13:15:32.355: E/AndroidRuntime(1247): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
08-29 13:15:32.355: E/AndroidRuntime(1247): at dalvik.system.NativeStart.main(Native Method)
按照方法的要求将它们设置为字符串
String url1 = list_item_bac; // e.g. http://example.com/images/image1.png
String url2 = list_item_bac;
String url3 = list_item_bac;
编辑
同一问题请参见此处谢谢您的及时回复。当我应用您的建议时,会发生的情况是,当我将Uri设置为字符串并在下面的行list\u item\u bac=Uri.parsei.getStringExtralist\u item\u bac接收到错误时,我无法引用Uri;它已经是一个字符串了,为什么要将其解析为uri?谢谢你的回复。将其更改为以下行时出现的问题:list\u item\u bac=I.getStringExtralist\u item\u bac;我收到以下错误:类型不匹配:无法从字符串转换为Uri最初是这样的-所有字符串,但我遇到了nullpoint异常错误在更新部分的初始帖子下添加了logcat消息,因此尝试调整代码以解决问题。如我所做,我将非常感谢任何指导一段时间以来一直在努力解决这个问题,为什么要将字符串转换为uri,然后返回?当我将其更改为以下行时的问题:list\u item\u bac=I.getStringExtralist\u item\u bac;我收到以下错误:类型不匹配:无法从字符串转换为Uri