我在活动中遇到问题。
我有一个由JSON填充的列表视图。如果用户点击一行,则显示详细视图活动。在这个详细视图上,活动是四行的问题,我已经评论(//)以避免异常。这里有详细视图活动的代码:
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.widget.ImageView;
import android.widget.TextView;
public class Empresas_SingleItemView extends Activity {
// Declare Variables
String valoracionEmpresa;
String nombreEmpresa;
String direccionEmpresa;
String imagenstrImagen;
String position;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Get the view from singleitemview.xml
ImageLoader imageLoader = new ImageLoader(this);
setContentView(R.layout.empresas_singleitemview);
Intent i = getIntent();
// Get the result of rank
valoracionEmpresa = i.getStringExtra("valoracionEmpresa");
// Get the result of country
nombreEmpresa = i.getStringExtra("nombreEmpresa");
// Get the result of population
direccionEmpresa = i.getStringExtra("direccionEmpresa");
// Get the result of flag
imagenstrImagen = i.getStringExtra("strImagen");
// Locate the TextViews in singleitemview.xml
TextView txtvaloracionempresa = (TextView) findViewById(R.id.valoracionEmpresa);
TextView txtnombreempresa = (TextView) findViewById(R.id.nombreEmpresa);
TextView txtdireccionempresa = (TextView) findViewById(R.id.direccionEmpresa);
// Locate the ImageView in singleitemview.xml
ImageView imagenEmpresa = (ImageView) findViewById(R.id.strImagen);
// *** this are the four lines that throw exception if not commented, each of them.
// Set results to the TextViews
(1) //txtvaloracionempresa.setText(valoracionEmpresa);
(2) //txtnombreempresa.setText(nombreEmpresa);
(3) //txtdireccionempresa.setText(direccionEmpresa);
// Capture position and set results to the ImageView
// Passes flag images URL into ImageLoader.class
(4) //imageLoader.DisplayImage(imagenstrImagen, imagenEmpresa);
}
}
我需要你的帮助才能发现问题所在。谢谢
EDITED
这是布局empresas_singleintemview:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/list_selector"
android:orientation="horizontal"
android:padding="5dip" >
<!-- ListRow Left sied Thumbnail image -->
<LinearLayout android:id="@+id/thumbnail"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="3dip"
android:layout_alignParentLeft="true"
android:background="@drawable/image_bg"
android:layout_marginRight="5dip">
<ImageView
android:id="@+id/strImagen"
android:layout_width="50dip"
android:layout_height="50dip"
android:src="@drawable/rihanna"/>
</LinearLayout>
<!-- Title Of Song-->
<TextView
android:id="@+id/valoracionEmpresa"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="@+id/thumbnail"
android:layout_toRightOf="@+id/thumbnail"
android:text="Rihanna Love the way lie"
android:textColor="#040404"
android:typeface="sans"
android:textSize="15dip"
android:textStyle="bold"/>
<!-- Artist Name -->
<TextView
android:id="@+id/direccionEmpresa"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/nombreEmpresa"
android:textColor="#343434"
android:textSize="10dip"
android:layout_marginTop="1dip"
android:layout_toRightOf="@+id/thumbnail"
android:text="Just gona stand there and ..." />
<!-- Rightend Duration -->
<TextView
android:id="@+id/valoracionEmpresa"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignTop="@id/nombreEmpresa"
android:gravity="right"
android:text="5:45"
android:layout_marginRight="5dip"
android:textSize="10dip"
android:textColor="#10bcc9"
android:textStyle="bold"/>
<!-- Rightend Arrow -->
<ImageView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/arrow"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"/>
</RelativeLayout>
EDITED
列表适配器的代码:
mport java.util.ArrayList; import java.util.HashMap;
import android.content.Context; import android.content.Intent; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.TextView;
public class Empresas_ListViewAdapter extends BaseAdapter {
// Declare Variables
Context context;
LayoutInflater inflater;
ArrayList<HashMap<String, String>> data;
ImageLoader imageLoader;
HashMap<String, String> resultp = new HashMap<String, String>();
public Empresas_ListViewAdapter(Context context,
ArrayList<HashMap<String, String>> arraylist) {
this.context = context;
data = arraylist;
imageLoader = new ImageLoader(context);
}
@Override
public int getCount() {
return data.size();
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
public View getView(final int position, View convertView, ViewGroup parent) {
// Declare Variables
TextView valoracionEmpresa;
TextView nombreEmpresa;
TextView direccionEmpresa;
ImageView strImagen;
inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View itemView = inflater.inflate(R.layout.empresas_listview_item, parent, false);
// Get the position
resultp = data.get(position);
// Locate the TextViews in listview_item.xml
valoracionEmpresa = (TextView) itemView.findViewById(R.id.valoracionEmpresa);
nombreEmpresa = (TextView) itemView.findViewById(R.id.nombreEmpresa);
direccionEmpresa = (TextView) itemView.findViewById(R.id.direccionEmpresa);
// Locate the ImageView in listview_item.xml
strImagen = (ImageView) itemView.findViewById(R.id.strImagen);
// Capture position and set results to the TextViews
valoracionEmpresa.setText(resultp.get(Empresas_MainActivity.VALORACIONEMPRESA));
nombreEmpresa.setText(resultp.get(Empresas_MainActivity.NOMBREEMPRESA));
direccionEmpresa.setText(resultp.get(Empresas_MainActivity.DIRECCIONEMPRESA));
// Capture position and set results to the ImageView
// Passes flag images URL into ImageLoader.class
imageLoader.DisplayImage(resultp.get(Empresas_MainActivity.STRIMAGEN), strImagen);
// Capture ListView item click
itemView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// Get the position
resultp = data.get(position);
Intent intent = new Intent(context, Empresas_SingleItemView.class);
Log.v("MVASCO valoracion Empresa =", "HOLA NOBMRE "+resultp.get(Empresas_MainActivity.NOMBREEMPRESA));
Log.v("MVASCO valoracion Empresa =", "HOLA VALORACION"+resultp.get(Empresas_MainActivity.VALORACIONEMPRESA));
// Pass all data rank
intent.putExtra("valoracionEmpresa", resultp.get(Empresas_MainActivity.VALORACIONEMPRESA));
// Pass all data country
intent.putExtra("nombreEmpresa", resultp.get(Empresas_MainActivity.NOMBREEMPRESA));
// Pass all data population
intent.putExtra("direccionEmpresa",resultp.get(Empresas_MainActivity.DIRECCIONEMPRESA));
// Pass all data flag
intent.putExtra("strImagen", resultp.get(Empresas_MainActivity.STRIMAGEN));
// Start SingleItemView Class
context.startActivity(intent);
}
});
return itemView;
}
}
答案 0 :(得分:1)
似乎罪魁祸首就是这样:
<TextView
android:id="@+id/valoracionEmpresa"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="@+id/thumbnail"
android:layout_toRightOf="@+id/thumbnail"
android:text="Rihanna Love the way lie"
android:textColor="#040404"
android:typeface="sans"
android:textSize="15dip"
android:textStyle="bold"/>
<!-- Artist Name -->
<TextView
android:id="@+id/direccionEmpresa"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/nombreEmpresa"
android:textColor="#343434"
android:textSize="10dip"
android:layout_marginTop="1dip"
android:layout_toRightOf="@+id/thumbnail"
android:text="Just gona stand there and ..." />
<!-- Rightend Duration -->
<TextView
android:id="@+id/valoracionEmpresa"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignTop="@id/nombreEmpresa"
android:gravity="right"
android:text="5:45"
android:layout_marginRight="5dip"
android:textSize="10dip"
android:textColor="#10bcc9"
android:textStyle="bold"/>
您已将same id
提供给两个TextView
。
答案 1 :(得分:1)
我认为您的错误存在于您的观点中。
<!-- Title Of Song-->
<TextView
android:id="@+id/valoracionEmpresa"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="@+id/thumbnail"
android:layout_toRightOf="@+id/thumbnail"
android:text="Rihanna Love the way lie"
android:textColor="#040404"
android:typeface="sans"
android:textSize="15dip"
android:textStyle="bold"/>
但是
<TextView
android:id="@+id/valoracionEmpresa"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignTop="@id/nombreEmpresa"
android:gravity="right"
android:text="5:45"
android:layout_marginRight="5dip"
android:textSize="10dip"
android:textColor="#10bcc9"
android:textStyle="bold"/>
具有相同的ID。你也有
TextView txtnombreempresa = (TextView) findViewById(R.id.nombreEmpresa);
没有标识为nombreEmpresa
的实际TextView。删除重复的视图或给它一个新的id(可能是nombreEmpresa)。
很抱歉没有及早发现错误