ANDROID:一是TextView中的多个字符串对之间的导航 [英] ANDROID: Navigate between multiple pairs of strings within one textView
本文介绍了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:机器人=http://schemas.android.com/apk/res/android
的xmlns:工具=http://schemas.android.com/tools
机器人:layout_width =match_parent
机器人:layout_height =match_parent
机器人:paddingLeft =@扪/ activity_horizontal_margin
机器人:paddingRight =@扪/ activity_horizontal_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_centerHorizontal =真
机器人:linksClickable =真
机器人:textIsSelectable =假
机器人:单线=真
安卓的onClick =onclick事件 机器人:可点击=真/> <! - < TextView的 - >
< - 机器人:文本=@字符串/ fc_back - >
!< - 机器人:layout_width =WRAP_CONTENT - >
!< - 机器人:layout_height =WRAP_CONTENT - >
!< - 机器人:layout_below =@ + ID / fcfront_textView - >
!< - 机器人:layout_centerHorizontal =真 - >
< - 机器人: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屋!
查看全文