我的项目中有3个活动。最后一个活动在数据库中显示textview中的内容,此内容包含链接。我想打开一个新活动,根据各自的ID显示这些链接的结果。这意味着我必须将这些链接的ID传递给我的第4个活动,以便在textview中再次显示数据。 怎么做。如何在textview中获取这些链接的ID。 如果想了解更多信息,请告诉我们! 请帮助我。
提前致谢!
第三项活动Activity3.java
public class Activity3 extends Activity{
String passedVar = null;
private TextView passedView = null;
private BooklistHelper dbBookHelper = null;
private Cursor ourCursor = null;
private BookAdapter1 adapter = null;
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.act3);
passedVar = getIntent().getStringExtra(Activity2.ID_EXTRA1);
passedView=(TextView)findViewById(R.id.passed);
//ListView myListView = (ListView)findViewById(R.id.myListView);
dbBookHelper = new BooklistHelper(this);
ourCursor = dbBookHelper.getBooksByAuthor1(passedVar);
startManagingCursor(ourCursor);
adapter = new BookAdapter1(ourCursor);
//myListView.setAdapter(adapter);
if(ourCursor != null){
if(ourCursor.moveToFirst()){
String value = ourCursor.getString(ourCursor.getColumnIndex("section_content"));
passedView.setText(Html.fromHtml(""+ value));
}
}
passedView.setLinksClickable(true);
passedView.setMovementMethod(ScrollingMovementMethod.getInstance());
passedView.setMovementMethod(LinkMovementMethod.getInstance());
}
class BookAdapter1 extends CursorAdapter{
BookAdapter1(Cursor c) {
super(Activity3.this, c);
}
@Override
public void bindView(View row, Context ctxt, Cursor c){
BookHolder1 holder = (BookHolder1)row.getTag();
holder.populateFrom(c, dbBookHelper);
}
@Override
public View newView(Context ctxt, Cursor c, ViewGroup parent){
LayoutInflater inflater = getLayoutInflater();
View row = inflater.inflate(R.layout.row3, parent, false);
BookHolder1 holder = new BookHolder1(row);
row.setTag(holder);
return(row);
}
}
static class BookHolder1{
private TextView name = null;
BookHolder1(View row) {
name = (TextView)row.findViewById(R.id.bookText1);
}
void populateFrom(Cursor c,BooklistHelper r){
name.setText(r.getName(c));
}
}
}
从这个文件中我从数据库中获取textview中的数据。现在这个内容有链接init。我想打开一个活动来显示这些单独链接的数据。为此,我得到了他们的ID,并告诉我在数据库中给这些链接的路径,以便onclick活动可以基于他们的ID。对于这个链接数据,我在数据库中有不同的表。
答案 0 :(得分:0)
一种可能的解决方案是将链接的ID与链接Map
一起存储在String
中。这样,当您想要获取特定文本视图中的链接ID时,您只需搜索String
密钥,然后您就会获得您的ID。
Map<String, Long> map = new HashMap<String,Long>();
map.put("http://www.stackoverflow.com",4);
Long desiredID = map.get(textView.getText());
launchActivity(desiredID);
可能不是最好的方式,但这是可能的。
答案 1 :(得分:0)
尝试将textview标记中的ID值设置为
String id = "1";
tv.setTag(id);
用于检索你可以做
String ret_id = tv.getTag().toString();