- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我试图在 listview 上显示图像和文本,但它在 CustomList.java 处给我一些空指针异常错误,即image.setImageBitmap(Bitmap.createScaledBitmap(bitmaps[position], 100, 50, false));
ImageListView.java
public class ImageListView extends AppCompatActivity implements AdapterView.OnItemClickListener {
private ListView listView;
public static final String GET_IMAGE_URL="http://website.com/ImageUpload/getAllImages.php";
public GetAlImages getAlImages;
public static final String BITMAP_ID = "BITMAP_ID";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_image_list_view);
listView = (ListView) findViewById(R.id.listView);
listView.setOnItemClickListener(this);
getURLs();
}
private void getImages(){
class GetImages extends AsyncTask<Void,Void,Void>{
ProgressDialog loading;
@Override
protected void onPreExecute() {
super.onPreExecute();
loading = ProgressDialog.show(ImageListView.this,"Downloading images...","Please wait...",false,false);
}
@Override
protected void onPostExecute(Void v) {
super.onPostExecute(v);
loading.dismiss();
System.out.println("Zinda 1");
//Toast.makeText(ImageListView.this,"Success",Toast.LENGTH_LONG).show();
CustomList customList = new CustomList(ImageListView.this,GetAlImages.imageURLs,GetAlImages.name,GetAlImages.bitmaps);
System.out.println("Zinda 2");
listView.setAdapter(customList);
}
@Override
protected Void doInBackground(Void... voids) {
try {
System.out.println("Zinda 3");
getAlImages.getAllImages();
System.out.println("Zinda 4");
} catch (JSONException e) {
e.printStackTrace();
}
return null;
}
}
GetImages getImages = new GetImages();
getImages.execute();
}
private void getURLs() {
class GetURLs extends AsyncTask<String,Void,String>{
ProgressDialog loading;
@Override
protected void onPreExecute() {
super.onPreExecute();
loading = ProgressDialog.show(ImageListView.this,"Loading...","Please Wait...",true,true);
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
loading.dismiss();
getAlImages = new GetAlImages(s);
getImages();
}
@Override
protected String doInBackground(String... strings) {
BufferedReader bufferedReader = null;
try {
URL url = new URL(strings[0]);
HttpURLConnection con = (HttpURLConnection) url.openConnection();
StringBuilder sb = new StringBuilder();
bufferedReader = new BufferedReader(new InputStreamReader(con.getInputStream()));
String json;
while((json = bufferedReader.readLine())!= null){
sb.append(json+"\n");
}
return sb.toString().trim();
}catch(Exception e){
return null;
}
}
}
GetURLs gu = new GetURLs();
gu.execute(GET_IMAGE_URL);
}
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
Intent intent = new Intent(this, ViewFullImage.class);
intent.putExtra(BITMAP_ID,i);
startActivity(intent);
}
}
//CustomList.java
public class CustomList extends ArrayAdapter<String> {
private String[] urls;
private String[] name;
private Bitmap[] bitmaps;
private Activity context;
public CustomList(Activity context, String[] urls, String[] name,Bitmap[] bitmaps) {
super(context, R.layout.image_list_view, urls);
this.context = context;
this.urls= urls;
System.out.println("Singh 1");
this.name= name;
this.bitmaps= bitmaps;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = context.getLayoutInflater();
View listViewItem = inflater.inflate(R.layout.image_list_view, null, true);
TextView textViewURL = (TextView) listViewItem.findViewById(R.id.textViewURL);
System.out.println("Singh 2");
TextView textViewName = (TextView) listViewItem.findViewById(R.id.textViewName);
System.out.println("Singh 3");
ImageView image = (ImageView) listViewItem.findViewById(R.id.imageDownloaded);
textViewURL.setText(urls[position]);
System.out.println("Singh 4");
textViewName.setText(name[position]);
System.out.println("Singh 5");
image.setImageBitmap(Bitmap.createScaledBitmap(bitmaps[position], 100, 50, false));
System.out.println("Singh 6");
return listViewItem;
}
}
//GetAlImages.java
public class GetAlImages {
public static String[] imageURLs;
public static String[] name;
public static Bitmap[] bitmaps;
public static final String JSON_ARRAY="result";
public static final String NAME = "name";
public static final String IMAGE_URL = "url";
private String json;
private JSONArray urls;
public GetAlImages(String json){
this.json = json;
try {
JSONObject jsonObject = new JSONObject(json);
urls = jsonObject.getJSONArray(JSON_ARRAY);
} catch (JSONException e) {
System.out.println("Matru 1");
e.printStackTrace();
}
}
private Bitmap getImage(JSONObject jo){
URL url = null;
// String name =null;
Bitmap image = null;
try {
url = new URL(jo.getString(IMAGE_URL));
// name = new String(jo.getString(NAME));
image = BitmapFactory.decodeStream(url.openConnection().getInputStream());
} catch (MalformedURLException e) {
System.out.println("MAtru 2");
e.printStackTrace();
} catch (IOException e) {
System.out.println("MAtru 3");
e.printStackTrace();
} catch (JSONException e) {
System.out.println("Matru 4");
e.printStackTrace();
}
return image;
}
public void getAllImages() throws JSONException {
bitmaps = new Bitmap[urls.length()];
imageURLs = new String[urls.length()];
name = new String[urls.length()];
for(int i=0;i<urls.length();i++){
name[i] = urls.getJSONObject(i).getString(NAME);
System.out.println("MAtru 5");
imageURLs[i] = urls.getJSONObject(i).getString(IMAGE_URL);
JSONObject jsonObject = urls.getJSONObject(i);
System.out.println("MAtru 6");
bitmaps[i]=getImage(jsonObject);
}
}
}
//Logcat结果
01-01 10:35:43.882 5415-5415/? I/System.out: Singh 2
01-01 10:35:43.882 5415-5415/? I/System.out: Singh 3
01-01 10:35:43.882 5415-5415/? D/AndroidRuntime: Shutting down VM
01-01 10:35:43.882 5415-5415/? W/dalvikvm: threadid=1: thread exiting with uncaught exception (group=0x5cceeb20)
01-01 10:35:43.882 1893-1990/? D/BstCommandProcessor-Application: Application crash has been observed.
01-01 10:35:43.882 1893-1990/? W/BstCommandProcessor-Application: in sendHttpRequest, requestType is of CRASH_APP type but one of the requiredInfo is NULL, crashedApp = com.bluestacks.BstCommandProcessor.BstCrashedAppInfo@2e7ce858
01-01 10:35:43.882 1893-1990/? D/BstCommandProcessor-Application: in sendHttpRequest, request to send to (fqdn): http://10.0.2.2:2861/AppCrashedInfo
01-01 10:35:43.882 1893-1990/? D/BstCommandProcessor-Application: data: {"packageName":"com.package.name","shortPackageName":"com.package.name","versionCode":1,"versionName":"1.0"}
01-01 10:35:43.882 5415-5415/? I/Process: Sending signal. PID: 5415 SIG: 9
01-01 10:35:43.882 5415-5415/? D/AndroidRuntime: procName from cmdline: com.package.name
01-01 10:35:43.882 5415-5415/? E/AndroidRuntime: in writeCrashedAppName, pkgName :com.package.name
01-01 10:35:43.882 5415-5415/? D/AndroidRuntime: file written successfully with content: com.package.name StringBuffer : ;com.package.name
01-01 10:35:43.882 5415-5415/? E/AndroidRuntime: FATAL EXCEPTION: main
01-01 10:35:43.882 5415-5415/? E/AndroidRuntime: Process: com.package.name, PID: 5415
01-01 10:35:43.882 5415-5415/? E/AndroidRuntime: java.lang.NullPointerException
01-01 10:35:43.882 5415-5415/? E/AndroidRuntime: at android.graphics.Bitmap.createScaledBitmap(Bitmap.java:589)
01-01 10:35:43.882 5415-5415/? E/AndroidRuntime: at com.package.listview.CustomList.getView(CustomList.java:44)
01-01 10:35:43.882 5415-5415/? E/AndroidRuntime: at android.widget.AbsListView.obtainView(AbsListView.java:2263)
01-01 10:35:43.882 5415-5415/? E/AndroidRuntime: at android.widget.ListView.measureHeightOfChildren(ListView.java:1263)
01-01 10:35:43.882 5415-5415/? E/AndroidRuntime: at android.widget.ListView.onMeasure(ListView.java:1175)
01-01 10:35:43.882 5415-5415/? E/AndroidRuntime: at android.view.View.measure(View.java:16558)
01-01 10:35:43.882 5415-5415/? E/AndroidRuntime: at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125)
01-01 10:35:43.882 5415-5415/? E/AndroidRuntime: at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1404)
01-01 10:35:43.882 5415-5415/? E/AndroidRuntime: at android.widget.LinearLayout.measureVertical(LinearLayout.java:695)
01-01 10:35:43.882 5415-5415/? E/AndroidRuntime: at android.widget.LinearLayout.onMeasure(LinearLayout.java:588)
01-01 10:35:43.882 5415-5415/? E/AndroidRuntime: at android.view.View.measure(View.java:16558)
01-01 10:35:43.882 5415-5415/? E/AndroidRuntime: at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125)
01-01 10:35:43.882 5415-5415/? E/AndroidRuntime: at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
01-01 10:35:43.882 5415-5415/? E/AndroidRuntime: at android.support.v7.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:135)
01-01 10:35:43.882 5415-5415/? E/AndroidRuntime: at android.view.View.measure(View.java:16558)
01-01 10:35:43.882 5415-5415/? E/AndroidRuntime: at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125)
01-01 10:35:43.882 5415-5415/? E/AndroidRuntime: at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1404)
01-01 10:35:43.882 5415-5415/? E/AndroidRuntime: at android.widget.LinearLayout.measureVertical(LinearLayout.java:695)
01-01 10:35:43.882 5415-5415/? E/AndroidRuntime: at android.widget.LinearLayout.onMeasure(LinearLayout.java:588)
01-01 10:35:43.882 5415-5415/? E/AndroidRuntime: at android.view.View.measure(View.java:16558)
01-01 10:35:43.882 5415-5415/? E/AndroidRuntime: at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125)
01-01 10:35:43.882 5415-5415/? E/AndroidRuntime: at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
01-01 10:35:43.882 5415-5415/? E/AndroidRuntime: at android.view.View.measure(View.java:16558)
01-01 10:35:43.882 5415-5415/? E/AndroidRuntime: at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125)
01-01 10:35:43.882 5415-5415/? E/AndroidRuntime: at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1404)
01-01 10:35:43.882 5415-5415/? E/AndroidRuntime: at android.widget.LinearLayout.measureVertical(LinearLayout.java:695)
01-01 10:35:43.882 5415-5415/? E/AndroidRuntime: at android.widget.LinearLayout.onMeasure(LinearLayout.java:588)
01-01 10:35:43.882 5415-5415/? E/AndroidRuntime: at android.view.View.measure(View.java:16558)
01-01 10:35:43.882 5415-5415/? E/AndroidRuntime: at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125)
01-01 10:35:43.882 5415-5415/? E/AndroidRuntime: at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
01-01 10:35:43.882 5415-5415/? E/AndroidRuntime: at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2291)
01-01 10:35:43.882 5415-5415/? E/AndroidRuntime: at android.view.View.measure(View.java:16558)
01-01 10:35:43.882 5415-5415/? E/AndroidRuntime: at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:1923)
01-01 10:35:43.882 5415-5415/? E/AndroidRuntime: at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1120)
01-01 10:35:43.882 5415-5415/? E/AndroidRuntime: at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1302)
01-01 10:35:43.882 5415-5415/? E/AndroidRuntime: at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1007)
01-01 10:35:43.882 5415-5415/? E/AndroidRuntime: at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5677)
01-01 10:35:43.882 5415-5415/? E/AndroidRuntime: at android.view.Choreographer$CallbackRecord.run(Choreographer.java:761)
01-01 10:35:43.882 5415-5415/? E/AndroidRuntime: at android.view.Choreographer.doCallbacks(Choreographer.java:574)
01-01 10:35:43.882 5415-5415/? E/AndroidRuntime: at android.view.Choreographer.doFrame(Choreographer.java:544)
01-01 10:35:43.882 5415-5415/? E/AndroidRuntime: at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:747)
01-01 10:35:43.882 5415-5415/? E/AndroidRuntime: at android.os.Handler.handleCallback(Handler.java:733)
01-01 10:35:43.882 5415-5415/? E/AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:95)
01-01 10:35:43.882 5415-5415/? E/AndroidRuntime: at android.os.Looper.loop(Looper.java:136)
01-01 10:35:43.882 5415-5415/? E/AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:5021)
01-01 10:35:43.882 5415-5415/? E/AndroidRuntime: at java.lang.reflect.Method.invokeNative(Native Method)
01-01 10:35:43.882 5415-5415/? E/AndroidRuntime: at java.lang.reflect.Method.invoke(Method.java:515)
01-01 10:35:43.882 5415-5415/? E/AndroidRuntime: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:827)
01-01 10:35:43.882 5415-5415/? E/AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:643)
01-01 10:35:43.882 5415-5415/? E/AndroidRuntime: at dalvik.system.NativeStart.main(Native Method)
01-01 10:35:43.892 1708-1905/? I/ActivityManager: Process com.package.name (pid 5415) has died.
01-01 10:35:43.892 1708-1905/? W/ActivityManager: Force removing ActivityRecord{2e94b214 u0 com.package.name/com.package.listview.ImageListView t10}: app died, no saved state
01-01 10:35:43.892 1708-1719/? I/WindowState: WIN DEATH: Window{2e9ee6cc u0 com.package.name/com.package.listview.ImageListView}
01-01 10:35:43.892 1708-1905/? D/ActivityManager: TopActivityInfo, pkgName: com.package.name activityName: com.package.name/.Login callingPackage: bstSpecialAppKeyboardHandlingEnabled = false
01-01 10:35:43.892 1708-1922/? I/WindowState: WIN DEATH: Window{2e949cb4 u0 Loading... EXITING}
01-01 10:35:43.902 1708-1752/? W/InputDispatcher: channel '2e729764 com.package.name/com.package.name.Login (server)' ~ Consumer closed input channel or an error occurred. events=0x9
01-01 10:35:43.902 1708-1752/? E/InputDispatcher: channel '2e729764 com.package.name/com.package.name.Login (server)' ~ Channel is unrecoverably broken and will be disposed!
01-01 10:35:43.902 1908-1908/? D/GuidanceScreen: event === app_launch
最佳答案
尝试在适配器 getView() 方法中使用 ConvertView 而不是 listViewItem,如下所示,
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = context.getLayoutInflater();
convertView = inflater.inflate(R.layout.image_list_view, null);
TextView textViewURL = (TextView) convertView.findViewById(R.id.textViewURL);
System.out.println("Singh 2");
TextView textViewName = (TextView) convertView.findViewById(R.id.textViewName);
System.out.println("Singh 3");
ImageView image = (ImageView) convertView.findViewById(R.id.imageDownloaded);
textViewURL.setText(urls[position]);
System.out.println("Singh 4");
textViewName.setText(name[position]);
System.out.println("Singh 5");
image.setImageBitmap(Bitmap.createScaledBitmap(bitmaps[position], 100, 50, false));
System.out.println("Singh 6");
return convertView;
}
关于java - 在 ListView 中显示来自服务器的文本和图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34554217/
谁能解释一下 Server.MapPath(".")、Server.MapPath("~")、Server.MapPath(@"之间的区别\") 和 Server.MapPath("/")? 最佳答案
我不知道,为什么我们要使用 Server.UrlEncode() & Server.UrlDecode()?!在 QueryString 中我们看到 URL 中的任何内容,那么为什么我们要对它们进行编
我已经通过 WHM 在我的一个域上安装了 ssl 证书。网站正在使用 https://xyz.com . 但是它不适用于 https://www.xyz.com .我已经检查了证书,它也适用于 www
我已经使用 WMI 检测操作系统上是否存在防病毒软件,itz 正常工作并通过使用命名空间向我显示防病毒信息,例如 win xp 和 window7 上的名称和实例 ID:\root\SecurityC
我们有 hive 0.10 版本,我们想知道是否应该使用 Hive Server 1 或 Hive Server2。另一个问题是连接到在端口 10000 上运行的 Hive 服务器,使用 3rd 方工
我想在 C++ 中使用 Windows Server API 设置一个 HTTPS 服务器,我使用了示例代码,它在 HTTP 上工作正常,但我就是不能让它在 HTTPS 上工作。 (我不想要客户端 S
我写了一个非常基本的类来发送电子邮件。我用 smtp 服务器对其进行了测试,它工作正常,但是当我尝试使用我公司的交换服务器时,它给出了这个异常: SMTP 服务器需要安全连接或客户端未通过身份验证。服
我的应用程序包含一个“网关”DataSnap REST 服务器,它是所有客户端的第一个访问点。根据客户端在请求中传递的用户名(基本身份验证),请求需要重定向到另一个 DataSnap 服务器。我的问题
我有一个 Tomcat 服务器和一个 Glassfish4 服务器。我的 Servlet 在 Tomcat 服务器上启动得很好,但在 Glassfish4 服务器上给我一个“HTTP Status 4
我在 vmware 上创建了一个 ubuntu 服务器。我用它作为文件服务器。如果我通过托管虚拟机的计算机进行连接,则可以访问它。我无法从同一网络上的其他计算机执行此操作。提前致谢! 最佳答案 首先确
如何重启 Rails 服务器?我从 开始 rails server -d 所以服务器是分离的 我知道的唯一方法就是去做ps 辅助 | grep rails 并 kill -9关于过程#但是像这样杀死进
我实际上正在尝试找到编写一个简单的 XMPP 服务器的最佳方法,或者找到一个占用空间非常小的服务器。我只关心XMPP的核心功能(状态、消息传递、群组消息传递)。目前还在学习 XMPP 协议(proto
我实际上正在尝试找到编写简单 XMPP 服务器的最佳方法,或者找到一个占用空间非常小的方法。我只关心 XMPP 的核心功能(统计、消息、组消息)。目前也在学习 XMPP 协议(protocol),所以
我们正在尝试从 Java JAX-RS 适配器访问 SOAP 1.1 Web 服务。 我们正在使用从 WSDL 生成的 SOAP 客户端。 但是当解码 SOAP 故障时,我们得到以下异常: ... C
目前,我和许多其他人正在多个平台(Windows、OS X 和可能的 Linux)上使用 Python HTTP 服务器。我们正在使用 Python HTTP 服务器来测试 JavaScript 游戏
我有一个连续运行的服务器程序(C#/.NET 2.0 on Linux with mono),我想从 PHP 脚本连接到它以在网站上显示状态信息。 目的是创建一个(某种)实时浏览器游戏(无 Flash
所以我有一个单页客户端应用程序。 正常流程: 应用程序 -> OAuth2 服务器 -> 应用程序 我们有自己的 OAuth2 服务器,因此人们可以登录应用程序并获取与用户实体关联的 access_t
我们刚刚将测试 Web 服务器从 Server 2008 升级到 Server 2012 R2。我们有一个部署我们网站的批处理脚本。当它将站点推送到服务器时,它现在失败了。奇怪的是,我可以使用相同的发
建议一些加载SpagoBI服务器的方法,我尝试了所有方法来解析spagobi服务器。在 Catalina 中,错误是 - * SEVERE: Unable to process Jar entry [
当我们点击应用程序服务器(apache tomcat)时,它会创建一个线程来处理我们的请求并与 tomcat 连接,建立连接,tomcat 创建另一个线程来处理请求并将其传递给连接,连接线程将其传递给
我是一名优秀的程序员,十分优秀!