【问题标题】:how to break an array string text in android?如何在android中打破数组字符串文本?
【发布时间】:2014-01-29 13:27:32
【问题描述】:

你好!! 我想这样显示表格:-

  • 1 * 1 = 1
  • 1 * 2 = 2
    • -
  • 1 * 10 = 10

    但我可以显示第一行然后它消失然后显示下一行。我正在尝试使用字符串数组来显示数字。

这是我的代码:-

public class MainActivity extends Activity {
    TextView txtView; 
    static String test[]={"","1","","1 *","","1 * 1","","1 * 1 = 1",
        "","1","","1 *","","1 * 2","","1 * 2 = 2",
        "","1","","1 *","","1 * 3","","1 * 3 = 3",
        "","1","","1 *","","1 * 4","","1 * 4 = 4",
        "","1","","1 *","","1 * 5","","1 * 5 = 5",
        "","1","","1 *","","1 * 6","","1 * 6 = 6",
        "","1","","1 *","","1 * 7","","1 * 7 = 7",
        "","1","","1 *","","1 * 8","","1 * 8 = 8",
        "","1","","1 *","","1 * 9","","1 * 9 = 9",
        "","1","","1 *","","1 * 10","","1 * 10 = 10"};
    Handler handler;
    ImageView imageView;
    Runnable runnable;
    StringBuilder sb = new StringBuilder();



    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Intent i = getIntent(); 
        String someVariable = i.getStringExtra("MA");
        Toast.makeText(getApplicationContext(), "SomeVariable" +someVariable, 222).show();

        txtView = (TextView) findViewById(R.id.greentxt_name);



     handler = new Handler();
    runnable = new Runnable() {

      int t=0;
      public void run() {

          sb.append(test[t]);

          t++;

          if( t>=79)
          { 


           handler.removeCallbacks(runnable) ;
           txtView.setText(test[t]);

          }
          else
          { txtView.setText(test[t]);
          handler.postDelayed(this,1000);    
          }
      }
  };
  handler.postDelayed(runnable, -1000); //for initial delay..
}


}

任何答案都是可观的。

提前致谢

【问题讨论】:

  • 看起来您可能想要使用列表视图,而每个列表视图视图都有一个表格布局。但是您将不得不为此目的编写一个 customAdapter。
  • 欢迎!我想一个一个地显示表格,所以我这样编码。但我不明白如何显示整个表格一次。
  • txtView.append(test[t]);而不是 txtView.setText(test[t]);希望我没听错。
  • 也使用循环来打印这个表会比写这个大字符串数组更容易。
  • @user2469133 它显示整个数组,但我想显示 1 * 1 = 1 |1 * 2 = 2 |1 * 3 =3...|1 * 10 = 10

标签: android arrays


【解决方案1】:

你可以这样做。 :

StringBuffer str= new StringBuffer();
for(int i=1;i<=10;i++)
{
    str.append(""+1+" * "+i+" = "+(1*i)+"\n");
    Log.e("", ""+str.toString());
}
txt.setText(str);

【讨论】:

  • 欢迎!我尝试使用这种方法,但我想从单击的按钮中获取条目。我试过here,但我无法按数字显示。
【解决方案2】:

我已经对您的代码进行了一些编辑以达到预期的效果 就是这样:

    public class MainActivity extends Activity {

    TextView txtView; 
    static String test[]={"1"," * ","1"," = ","1", "\n",
        "1"," * ","2"," = ","2", "\n",
        "1"," * ","3"," = ","3", "\n",
        "1"," * ","4"," = ","4", "\n",
        "1"," * ","5"," = ","5", "\n",
        "1"," * ","6"," = ","6", "\n",
        "1"," * ","7"," = ","7", "\n",
        "1"," * ","8"," = ","8", "\n",
        "1"," * ","9"," = ","9", "\n",
        "1"," * ","10"," = ","10"};

    Handler handler;
    ImageView imageView;
    Runnable runnable;
    StringBuilder sb = new StringBuilder();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Intent i = getIntent(); 
        txtView = (TextView) findViewById(R.id.greentxt_name);



     handler = new Handler();
     runnable = new Runnable() {

      int t=0;
      public void run() {

          sb.append(test[t]);

          t++;

          if( t>=59)
          { 


           handler.removeCallbacks(runnable) ;
           txtView.setText(sb);

          }
          else
          { txtView.setText(sb);
          handler.postDelayed(this,1000);    
          }

        }};
     handler.postDelayed(runnable, -1000); //for initial delay.. 
}}

您可以删除硬编码的值并对其进行概括,以便将来用于任何其他表。

【讨论】:

  • 欢迎它工作,但我仍然有同样的问题。它显示在单行但我想要 1 在第二行之后
  • 太棒了!根据我的要求,它对我有用。我想在这封信中添加声音,你能帮我怎么做吗?
  • 我需要一些帮助..我之前尝试过点击按钮,但它可以直接查看我的第一个表格,您可以帮助如何在不同的活动中点击特定按钮。我很感激你。
  • 我没听懂你。和这个问题有关系吗?如果没有,请创建另一个问题。
  • 欢迎回复!!!我正在尝试在按钮 1 (pastie.org/8682066) 上调用此表以显示在另一个页面中 (pastie.org/8682062)。但是当我点击按钮时,它会自动启动表格。
【解决方案3】:

文本视图中的文本不断被替换,因为来自 text[t] 的新索引值

您可以通过将行连接为 sb 字符串中的下一行并替换来稍微更改逻辑

txtView.setText(test[t]); 

txtView.setText(sb);

【讨论】:

  • 我尝试了这两种方法,但它对我不起作用。它显示所有内容。我用来按数字显示数字,这就是我使用 text[t] 的原因。所以我能够显示在这里逐个编号。
  • 使用另一个字符串来跟踪您的行(在您的情况下每次 8 个索引值),一旦完成,添加一个新行。另外,继续将此文本添加到 sb
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-09-21
  • 1970-01-01
  • 2015-10-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多