我在android中做一个应用程序。应用程序在文本字段中保存引号或表达式。用户有机会更改此文本。但我希望当引用出现在TextView
时,它根本就没有出现。我只想出现引号的前5个字符。我尝试使用子字符串执行此操作,但是当我打开TextView
时,没有任何内容出现。 TextView
为空。我该怎么办?
请有人帮助我。
提前致谢。
这是我使用substring的行:
ListAdapter adapter = new SimpleAdapter( Quote.this,quoteList, R.layout.quote_entry, new String[] { "quoteId", "textQuote".substring(0, 4)}, new int[] {R.id.quoteId, R.id.textQuote});
这是整个班级
package com.example.prova1;
/**This class is the page of quotes*/
import java.util.ArrayList;
import java.util.HashMap;
import android.app.ListActivity;
import com.example.prova1.Database;
import com.example.prova1.EditQuote;
import com.example.prova1.AddQuote;
import com.example.prova1.R;
import android.os.Bundle;
import android.content.Intent;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListAdapter;
import android.widget.TextView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.SimpleAdapter;
import android.widget.ListView;
public class Quote extends ListActivity {
Intent intent;
TextView quoteId;
Database quotedatabase = new Database(this);
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.quote_main);//define that the interface used is quote_main
//Store data from database in an array list
ArrayList<HashMap<String, String>> quoteList = quotedatabase.getAllItems();
//Check if there are quotes to display
if(quoteList.size()!=0) {
ListView listView = getListView();
listView.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,int position, long id) {
quoteId = (TextView) view.findViewById(R.id.quoteId);
String itemIdValue = quoteId.getText().toString();
Intent theIndent = new Intent(getApplication(),ShowQuote.class);
theIndent.putExtra("quoteId", itemIdValue);
finish();
startActivity(theIndent);
}
});
// Here we use ListAdapter as a bridge between ListView and the data of ListView
ListAdapter adapter = new SimpleAdapter(
Quote.this,quoteList,
R.layout.quote_entry,
new String[] {
"quoteId",
"textQuote".substring(0, 4)
},
new int[] {
R.id.quoteId,
R.id.textQuote}
);
setListAdapter(adapter);
}
}
}
答案 0 :(得分:0)
我目前没有安装SDK来测试您的代码,但我确实有一些建议。
首先:尝试没有子字符串的代码,看看是否有效。 第二:如果可行,则将子串操作移到前一行,并将结果传递给SimpleAdapter。
我说这是因为我觉得子串实际上不是你的问题。这只是测试它的好方法。
我还会检查你的布局“R.layout.quote_entry”,并确保没有任何奇怪的事情发生。比如你有“R.id.textQuote”实际上被“消失”而另一个TextView被明显显示等等。我曾经遇到过这个问题。我有两个EditText字段,只显示其中一个字段,因此Activity看起来正确,但行为不正常。