ANDROID:一是TextView中的多个字符串对之间的导航 [英] ANDROID: Navigate between multiple pairs of strings within one textView

查看:159
本文介绍了ANDROID:一是TextView中的多个字符串对之间的导航的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

闪存卡应用

我已经存储在多个strings.xml中的静态字符串,我想用prev_Clicked / next_Clicked按钮在它们之间进行导航。

我也想能够存储问题和当应用程序正在运行的答案串,并访问通过preV /下一个按钮的

感谢您的时间,我的如下code:



的.java

 公共类MainActivity扩展splashActivity {
    按钮closeButton,Add按钮,prevButton,Next按钮;
    TextView的QAText,answerText;    @覆盖
    保护无效的onCreate(捆绑savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        的setContentView(R.layout.activity_flashcard);        QAText =(的TextView)findViewById(R.id.fcfront_textView);
        answerText =(的TextView)findViewById(R.id.fcfront_textView); //没有任何地方使用ATM
        QAText.setOnClickListener(新View.OnClickListener()
        {
            //函数Q / A之间切换
            公共无效的onClick(视图v)
            {                如果(QAText.getText()。的toString()。等于(的getString(R.string.fc_front))){
                    QAText.setText(R.string.fc_back);
                    Toast.makeText(getApplicationContext(),R.string.fc_front,Toast.LENGTH_LONG).show();
                }其他{
                    QAText.setText(R.string.fc_front);
                    Toast.makeText(getApplicationContext(),交换:后端到前端,Toast.LENGTH_LONG).show();
                }
            }
        });    }
    @覆盖
    公共布尔onCreateOptionsMenu(菜单菜单){
        //充气菜单;如果是present这增加了项目操作栏。
        。getMenuInflater()膨胀(R.menu.main,菜单);
        返回true;
    }    @覆盖
    公共布尔onOptionsItemSelected(菜单项项){
        //处理动作栏项目点击这里。操作栏会
        //自动处理上点击主页/向上按钮,只要
        //你在AndroidManifest.xml中指定一个父活动。
        INT ID = item.getItemId();
        如果(ID == R.id.action_settings){
            返回true;
        }
        返回super.onOptionsItemSelected(项目);
    }
    //获取直接从XML单击事件
    公共无效next_Clicked(查看视图)
    {
        //测试:
        Toast.makeText(getApplicationContext(),下一步按钮的作品!,Toast.LENGTH_LONG).show();
    }    公共无效prev_Clicked(查看视图)
    {
        //测试:
        Toast.makeText(getApplicationContext(),$ P $光伏按钮的作品!,Toast.LENGTH_LONG).show();
    }} //主结束



layout.xml

 <的RelativeLayout的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android
    的xmlns:工具=htt​​p://schemas.android.com/tool​​s
    机器人:layout_width =match_parent
    机器人:layout_height =match_parent
    机器人:paddingLeft =@扪/ activity_horizo​​ntal_margin
    机器人:paddingRight =@扪/ activity_horizo​​ntal_margin
    机器人:paddingTop =@扪/ activity_vertical_margin
    机器人:paddingBottom会=@扪/ activity_vertical_margin
    工具:MyActivity上下文=
    机器人:可点击=真
    机器人:ID =@ + ID /背景
    机器人:背景=#ff80b5ff>    <的TextView
        机器人:文字=@字符串/ fc_front
        机器人:layout_width =WRAP_CONTENT
        机器人:layout_height =WRAP_CONTENT
        机器人:ID =@ + ID / fcfront_textView
        机器人:layout_centerVertical =真
        机器人:TEXTSIZE =30sp
        机器人:layout_centerHorizo​​ntal =真
        机器人:linksClickable =真
        机器人:textIsSelectable =假
        机器人:单线=真
        安卓的onClick =onclick事件        机器人:可点击=真/>    <! - < TextView的 - >
        < - 机器人:文本=@字符串/ fc_back - >
        !< - 机器人:layout_width =WRAP_CONTENT - >
        !< - 机器人:layout_height =WRAP_CONTENT - >
        !< - 机器人:layout_below =@ + ID / fcfront_textView - >
        !< - 机器人:layout_centerHorizo​​ntal =真 - >
        < - 机器人:ID =@ + ID / fcback_textView - >
        < - 安卓!TEXTSIZE =30sp - >
        < - 安卓!linksClickable =真 - >
        < - 安卓!textIsSelectable =假 - >
        < - 安卓!SINGLELINE =真 - >
        < - 机器人:可点击=真/> - >    <按钮
        机器人:layout_width =WRAP_CONTENT
        机器人:layout_height =WRAP_CONTENT
        机器人:文字=@字符串/ main_ preV
        机器人:ID =@ + ID / prevbutton
        机器人:layout_alignParentBottom =真
        机器人:layout_alignParentLeft =真
        机器人:重力=底部|中心
        机器人:layout_weight =1
        机器人:TEXTSIZE =30sp
        机器人:layout_alignParentStart =真
        安卓的onClick =prev_Clicked
        />
    <按钮
        机器人:layout_width =WRAP_CONTENT
        机器人:layout_height =WRAP_CONTENT
        机器人:文字=@字符串/ main_next
        机器人:ID =@ + ID / Next按钮
        机器人:layout_alignParentBottom =真
        机器人:layout_alignParentRight =真
        机器人:重力=底部|中心
        机器人:layout_weight =1
        机器人:TEXTSIZE =30sp
        机器人:提示=浏览+
        安卓的onClick =next_Clicked
    机器人:layout_alignParentEnd =真/>
<按钮
    风格=机器人:ATTR / buttonStyleSmall
    机器人:layout_width =WRAP_CONTENT
    机器人:layout_height =WRAP_CONTENT
    机器人:文字=X
    机器人:ID =@ + ID / closebutton
    机器人:layout_alignParentTop =真
    机器人:layout_alignParentRight =真
    机器人:比重=中心
    机器人:TEXTSIZE =30sp    机器人:layout_alignParentEnd =真/><按钮
    机器人:layout_width =WRAP_CONTENT
    机器人:layout_height =WRAP_CONTENT
    机器人:文字=+
    机器人:ID =@ + ID / plusbutton
    机器人:layout_alignParentTop =真
    机器人:layout_alignParentLeft =真
    机器人:比重=中心
    机器人:TEXTSIZE =30sp    机器人:layout_alignParentStart =真/>< / RelativeLayout的>



的strings.xml

 <?XML版本=1.0编码=UTF-8&GT?;
<资源>    <字符串名称=APP_NAME> CSCE305HW1< /串>
    <字符串名称=fc_front>识字卡:前< /串>
    <字符串名称=fc_back>识字卡:BACK< /串>
    <字符串名称=Q1>问题1< /串>
    <字符串名称=A1>正确答案为< /串>
    <字符串名称=Q2>问题2< /串>
    <字符串名称=A2>&ANSWER2 LT; /串>
    <字符串名称=action_settings>但没有此处< /串>
    <字符串名称=title_activity_main> MainActivity< /串>
    <字符串名称=title_activity_goodbye>再见< /串>
    <字符串名称=main_next>接下来< /串>
    <字符串名称=main_ preV> previous< /串>< /资源>


解决方案

定义你的字符串作为 XML 这样的数组:

 <字符串数组名=your_string_array>
    <项目>字符串1< /项目>
    <项目>字符串1< /项目>
< /字符串数组>

和使用他们作为你的code数组是这样的:

 的String [] = some_array getResources()getStringArray(R.array.your_string_array)。
INT索引= 0;
...
prevButton.setOnClickListener(本);
nextButton.setOnClickListener(本);
...
@覆盖
公共无效的onClick(视图v){
  开关(v.getId){
     案例R.id.your_next_button_id:
      指数++;
      打破;
     案例R.id.your_ previous_button_id:
      指数 -​​ ;
      打破;
  }
  yourTextView.setText(some_array [指数]);
}

Flash Card App

I have multiple static strings stored on strings.xml and I would like to navigate between them using the prev_Clicked/next_Clicked buttons.

I also would like to be able to store strings for Questions and Answers while the app is running, and access those via prev/next buttons

Thank you for your time, follows my code:


.java

public class MainActivity extends splashActivity {


    Button closeButton, addButton, prevButton, nextButton;
    TextView QAText, answerText;

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

        QAText = (TextView) findViewById(R.id.fcfront_textView);
        answerText = (TextView) findViewById(R.id.fcfront_textView); //not used anywhere atm


        QAText.setOnClickListener(new View.OnClickListener()
        {
            //function to toggle between Q/A
            public void onClick(View v)
            {

                if(QAText.getText().toString().equals(getString(R.string.fc_front))){
                    QAText.setText(R.string.fc_back);
                    Toast.makeText(getApplicationContext(), R.string.fc_front , Toast.LENGTH_LONG).show();
                }else{
                    QAText.setText(R.string.fc_front);
                    Toast.makeText(getApplicationContext(), "SWAPPING: back-to-front", Toast.LENGTH_LONG).show();
                }
            }
        });

    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
        if (id == R.id.action_settings) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }


    //gets click event directly from xml
    public void next_Clicked(View view)
    {
        //test:
        Toast.makeText(getApplicationContext(), "Next button works!!", Toast.LENGTH_LONG).show();
    }

    public void prev_Clicked(View view)
    {
        //test:
        Toast.makeText(getApplicationContext(), "Prev button works!!", Toast.LENGTH_LONG).show();
    }



} //end of main


layout.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin"
    tools:context=".MyActivity"
    android:clickable="true"
    android:id="@+id/background"
    android:background="#ff80b5ff">

    <TextView
        android:text="@string/fc_front"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/fcfront_textView"
        android:layout_centerVertical="true"
        android:textSize="30sp"
        android:layout_centerHorizontal="true"
        android:linksClickable="true"
        android:textIsSelectable="false"
        android:singleLine="true"
        android:onClick="OnClick"

        android:clickable="true" />

    <!--<TextView-->
        <!--android:text="@string/fc_back"-->
        <!--android:layout_width="wrap_content"-->
        <!--android:layout_height="wrap_content"-->
        <!--android:layout_below="@+id/fcfront_textView"-->
        <!--android:layout_centerHorizontal="true"-->
        <!--android:id="@+id/fcback_textView"-->
        <!--android:textSize="30sp"-->
        <!--android:linksClickable="true"-->
        <!--android:textIsSelectable="false"-->
        <!--android:singleLine="true"-->
        <!--android:clickable="true" />-->

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/main_prev"
        android:id="@+id/prevbutton"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:gravity="bottom|center"
        android:layout_weight="1"
        android:textSize="30sp"
        android:layout_alignParentStart="true"
        android:onClick="prev_Clicked"
        />


    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/main_next"
        android:id="@+id/nextbutton"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:gravity="bottom|center"
        android:layout_weight="1"
        android:textSize="30sp"
        android:hint="Browse +"
        android:onClick="next_Clicked"


    android:layout_alignParentEnd="true" />


<Button
    style="?android:attr/buttonStyleSmall"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="X"
    android:id="@+id/closebutton"
    android:layout_alignParentTop="true"
    android:layout_alignParentRight="true"
    android:gravity="center"
    android:textSize="30sp"

    android:layout_alignParentEnd="true" />

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="+"
    android:id="@+id/plusbutton"
    android:layout_alignParentTop="true"
    android:layout_alignParentLeft="true"
    android:gravity="center"
    android:textSize="30sp"

    android:layout_alignParentStart="true" />

</RelativeLayout>


strings.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="app_name">CSCE305HW1</string>
    <string name="fc_front">FLASHCARD: FRONT</string>
    <string name="fc_back">FLASHCARD: BACK</string>
    <string name="Q1">Question1</string>
    <string name="A1">Answer1</string>
    <string name="Q2">Question2</string>
    <string name="A2">Answer2 </string>
    <string name="action_settings">Nothing here yet</string>
    <string name="title_activity_main">MainActivity</string>
    <string name="title_activity_goodbye">goodbye</string>
    <string name="main_next">Next</string>
    <string name="main_prev">Previous</string>

</resources>

解决方案

define your strings as an array in xml like this :

<string-array name="your_string_array">
    <item>string1</item>
    <item>string1</item>
</string-array>

and use them as an array in your code like this :

String[] some_array = getResources().getStringArray(R.array.your_string_array);
int index = 0 ;
...
prevButton.setOnClickListener(this);
nextButton.setOnClickListener(this);
...
@Override
public void onClick(View v) {
  switch(v.getId) {
     case R.id.your_next_button_id : 
      index++;
      break;
     case R.id.your_previous_button_id : 
      index--;
      break;
  }
  yourTextView.setText(some_array[index]);
}

这篇关于ANDROID:一是TextView中的多个字符串对之间的导航的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆