当我使用substring时,textview为空

时间:2013-09-28 18:50:56

标签: android string substring

我在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);


  }
 }
 }

1 个答案:

答案 0 :(得分:0)

我目前没有安装SDK来测试您的代码,但我确实有一些建议。

首先:尝试没有子字符串的代码,看看是否有效。 第二:如果可行,则将子串操作移到前一行,并将结果传递给SimpleAdapter。

我说这是因为我觉得子串实际上不是你的问题。这只是测试它的好方法。

我还会检查你的布局“R.layout.quote_entry”,并确保没有任何奇怪的事情发生。比如你有“R.id.textQuote”实际上被“消失”而另一个TextView被明显显示等等。我曾经遇到过这个问题。我有两个EditText字段,只显示其中一个字段,因此Activity看起来正确,但行为不正常。