ANDROID:在一个可点击的TextView交换字符串字符串、ANDROID、TextView

2023-09-06 14:31:26 作者:养一盘月亮

闪存卡应用

您好,林作出烧录卡的应用程序,我想换弦当用户点击主fcfront_textView。的主要问题是与开关语句,因为它是不正确检测到的不同的情况下和/或没有正确交换的字符串。我什么都试过,我知道以下是它从正面换到后面的最好的情况下,但它不换了。

的想法是,我将有问题/答案串previously存储和的onClick应该Q / A之间进行切换。最后,我想了Next按钮/ prevButton两人点击TextView的字符串(Q / A)之间的导航,并能够添加质量检查,但我不知道如何实现这一点。

感谢您的时间,我的如下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)            {                //交换();                //switch(Resources.getSystem().getString(R.string.fc_back))//错误的!                 。//switch(QAText.getText()的toString())//没有工作!烧焦=字符串                开关(R.string.fc_front)                {                    案例R.string.fc_front:                        ((的TextView)findViewById(R.id.fcfront_textView))的setText(R.string.fc_back)。                        Toast.makeText(getApplicationContext(),R.string.fc_front,Toast.LENGTH_LONG).show();                        //QAText.setVisibility(v.GONE);                        打破;                    案例R.string.fc_back:                        ((的TextView)findViewById(R.id.fcfront_textView))的setText(R.string.fc_front)。                        Toast.makeText(getApplicationContext(),交换:后端到前端,Toast.LENGTH_LONG).show();                        打破;                }                Toast.makeText(getApplicationContext(),开关OUT,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();    }    //应该换字符串(没有工作)    私人无效交换()    {        字符串frontstring =的getString(R.string.fc_front);        字符串backstring =的getString(R.string.fc_back);        字符串displaystring =的getString(R.string.action_settings);        //测试:        // Toast.makeText(getApplicationContext()的TextView的作品!,Toast.LENGTH_LONG).show();            如果(frontstring!= displaystring){                // displaystring =的getString(R.string.fc_back);                ((的TextView)findViewById(R.id.fcfront_textView))的setText(R.string.fc_back)。            }其他{                // displaystring =的getString(R.string.fc_front);                ((的TextView)findViewById(R.id.fcfront_textView))的setText(R.string.fc_front)。            }//通过ID开关的情况下不工作://开关(view.getId())// {//情况R.id.fcfront_textView:// TextView的txtView =(的TextView)findViewById(R.id.fcfront_textView);// txtView.setVisibility(View.GONE);//突破;//}        Toast.makeText(getApplicationContext(),交换结束(),Toast.LENGTH_LONG).show();    }} //主结束 
怎样写一个android端可以根据微信TextView的id来更改其text的小软件

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< /串>< /资源> 

解决方案

尝试使用的if-else代替开关字符串比较:

 如果(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();} 

Flash Card App

Hello, Im making a flashcard app and I would like to swap strings when the user taps on the main fcfront_textView. The main issue is with the switch statement, because it is not properly detecting the different cases and/or not swapping the strings properly. I tried everything I know and below is the best case where it swaps from Front to Back but it does not swap back.

The idea is that I will have Question/Answers strings previously stored and the onClick should swap between Q/A. Eventually I would like that the nextButton/prevButton navigate between the pair of clickable textView strings (Q/A), and to be able to add QAs but I dont know how to implement that.

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)
            {
                // exchange();

                //switch(Resources.getSystem().getString(R.string.fc_back))  //bad!

                 //switch(QAText.getText().toString()) //did not work: char != string
                switch(R.string.fc_front)
                {
                    case R.string.fc_front:
                        ((TextView)findViewById(R.id.fcfront_textView)).setText(R.string.fc_back);
                        Toast.makeText(getApplicationContext(), R.string.fc_front , Toast.LENGTH_LONG).show();
                        //QAText.setVisibility(v.GONE);
                        break;

                    case R.string.fc_back:
                        ((TextView)findViewById(R.id.fcfront_textView)).setText(R.string.fc_front);
                        Toast.makeText(getApplicationContext(), "SWAPPING: back-to-front", Toast.LENGTH_LONG).show();
                        break;
                }
                Toast.makeText(getApplicationContext(), "OUT OF THE SWITCH", 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();
    }


    //supposed to swap strings (did not work)
    private void exchange()
    {
        String frontstring = getString(R.string.fc_front);
        String backstring = getString(R.string.fc_back);
        String displaystring = getString(R.string.action_settings);


        //test:
        // Toast.makeText(getApplicationContext(), "textView works!", Toast.LENGTH_LONG).show();

            if (frontstring != displaystring) {
                //displaystring =  getString(R.string.fc_back);
                ((TextView) findViewById(R.id.fcfront_textView)).setText(R.string.fc_back);

            } else {
                //displaystring = getString(R.string.fc_front);
                ((TextView) findViewById(R.id.fcfront_textView)).setText(R.string.fc_front);
            }


//switch case by id did not work:
//        switch(view.getId())
//        {
//            case R.id.fcfront_textView:
//                TextView txtView = (TextView)findViewById(R.id.fcfront_textView);
//                txtView.setVisibility(View.GONE);
//                break;
//        }
        Toast.makeText(getApplicationContext(), "end of exchange()", 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>

解决方案

Try to use if-else instead switch for string comparison :

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

 
精彩推荐
图片推荐