0

我正在android中做一个应用程序。应用程序将引用或表达式保存在文本字段中。用户有机会更改此文本。但我希望当引用出现在 中时TextView,它根本不会出现。我只希望出现引用的前 5 个字符。我尝试使用子字符串来执行此操作,但是当我打开时,TextView什么都没有出现。TextView是空的。我能做些什么?

任何人都可以帮助我,拜托。

提前致谢。

这是我使用子字符串的行:

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


  }
 }
 }
4

1 回答 1

0

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

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

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

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

于 2013-09-28T19:29:26.707 回答