如何使用 Intent 传递 Spanned Data 类型的数据
How to pass Spanned Data-type data using Intent
我正在将一些数据从一个 activity 传递到另一个。所有数据都正常传递,但数据类型为 Spanned 的数据根本无法正常工作。
当我在第一个 Activity 中显示它时,它有效,但当我在另一个 activity 中显示它时,它甚至没有出现。
我是这样从json取数据的
public void parseJsonData(final String jsonString) {
try {
jArray = new JSONArray(jsonString);
for(int i=0; i < jArray.length(); i++) {
JSONObject jObject = jArray.getJSONObject(i);
news news1 = new news();
news1.setCategory("Spor");
news1.setTitle(jObject.getString("title"));
news1.setDate(jObject.getString("date"));
news1.setContent(Html.fromHtml(jObject.getString("content")));//Here the data type of Content is Spanned
news1.setShort_content(jObject.getString("short_content"));
Sdatalist.add(news1);
}
if (dialog.isShowing()){
dialog.dismiss();
}
} catch (JSONException e) {
e.printStackTrace();
dialog.dismiss();
}
}
我从我的适配器发送了这样的数据
myholder.myimageview1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent myIntent = new Intent(mycontext, Detailews.class);
myIntent.putExtra("category", mydatalist.get(position).getCategory());
myIntent.putExtra("title", mydatalist.get(position).getTitle());
myIntent.putExtra("date", mydatalist.get(position).getDate());
myIntent.putExtra("cont", mydatalist.get(position).getContent());
myIntent.putExtra("image", mydatalist.get(position).getImage());
mycontext.startActivity(myIntent);
}
});
在另一个activity中,我收到了这样的数据
cat = (TextView)findViewById(R.id.Dtextcategory);
dat = (TextView)findViewById(R.id.Ddatetext);
tit = (TextView)findViewById(R.id.Dtitletext);
con = (TextView)findViewById(R.id.textView4);
Intent in = getIntent();
final String image_url = in.getStringExtra("image");
final String title = in.getStringExtra("title");
final String date = in.getStringExtra("date");
final String co = in.getStringExtra("cont");//If I try making the datatype here spanned,it wont understand :)
final String category = in.getStringExtra("category");
cat.setText(category);
dat.setText(date);
tit.setText(title);
con.setText(co); //Here is where it does not show.
imageView = (ImageView)findViewById(R.id.Dimage);
new CustomAdapter.DownloadImageTask(imageView).execute(image_url);
我需要找人来找出错误。 :) 帮帮我
getContent()
需要 return 一个 CharSequence
。然后,使用 getCharSequenceExtra()
,而不是 getStringExtra()
,将其保存到 CharSequence
变量。
IOW,字符串没有跨度。 CharSequence
对象具有跨度。当您通过 toString()
将 CharSequence
转换为字符串时,您将失去跨度。
我正在将一些数据从一个 activity 传递到另一个。所有数据都正常传递,但数据类型为 Spanned 的数据根本无法正常工作。 当我在第一个 Activity 中显示它时,它有效,但当我在另一个 activity 中显示它时,它甚至没有出现。
我是这样从json取数据的
public void parseJsonData(final String jsonString) {
try {
jArray = new JSONArray(jsonString);
for(int i=0; i < jArray.length(); i++) {
JSONObject jObject = jArray.getJSONObject(i);
news news1 = new news();
news1.setCategory("Spor");
news1.setTitle(jObject.getString("title"));
news1.setDate(jObject.getString("date"));
news1.setContent(Html.fromHtml(jObject.getString("content")));//Here the data type of Content is Spanned
news1.setShort_content(jObject.getString("short_content"));
Sdatalist.add(news1);
}
if (dialog.isShowing()){
dialog.dismiss();
}
} catch (JSONException e) {
e.printStackTrace();
dialog.dismiss();
}
}
我从我的适配器发送了这样的数据
myholder.myimageview1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent myIntent = new Intent(mycontext, Detailews.class);
myIntent.putExtra("category", mydatalist.get(position).getCategory());
myIntent.putExtra("title", mydatalist.get(position).getTitle());
myIntent.putExtra("date", mydatalist.get(position).getDate());
myIntent.putExtra("cont", mydatalist.get(position).getContent());
myIntent.putExtra("image", mydatalist.get(position).getImage());
mycontext.startActivity(myIntent);
}
});
在另一个activity中,我收到了这样的数据
cat = (TextView)findViewById(R.id.Dtextcategory);
dat = (TextView)findViewById(R.id.Ddatetext);
tit = (TextView)findViewById(R.id.Dtitletext);
con = (TextView)findViewById(R.id.textView4);
Intent in = getIntent();
final String image_url = in.getStringExtra("image");
final String title = in.getStringExtra("title");
final String date = in.getStringExtra("date");
final String co = in.getStringExtra("cont");//If I try making the datatype here spanned,it wont understand :)
final String category = in.getStringExtra("category");
cat.setText(category);
dat.setText(date);
tit.setText(title);
con.setText(co); //Here is where it does not show.
imageView = (ImageView)findViewById(R.id.Dimage);
new CustomAdapter.DownloadImageTask(imageView).execute(image_url);
我需要找人来找出错误。 :) 帮帮我
getContent()
需要 return 一个 CharSequence
。然后,使用 getCharSequenceExtra()
,而不是 getStringExtra()
,将其保存到 CharSequence
变量。
IOW,字符串没有跨度。 CharSequence
对象具有跨度。当您通过 toString()
将 CharSequence
转换为字符串时,您将失去跨度。