我正在学习Android并坚持这一点。 我想在Android中制作一个项目。在MainActivity中,我有一个按钮,并希望设置onClick()事件,如果按钮的文本是“SOLVE”,然后添加片段输出并将按钮的名称更改为“BACK”,并且如果按钮的文本是“BACK”,则添加片段Input并将Button的文本更改为“SOLVE”。如何更改Android中的片段
这里是我的MainActivity.java代码
package com.example.sudokusolver;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.View;
import android.widget.Button;
public class MainActivity extends ActionBarActivity {
Button a
String check ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
a=(Button) findViewById(R.id.press);
check=a.getText().toString();
a.setOnClickListener(new View.OnClickListener(){
public void onClick(View v){
if(check.equals("SOLVE")){
Output OP=new Output();
FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction ft =
fragmentManager.beginTransaction();
ft.add(R.id.frag,OP);
ft.commit();
a.setText("BACK");
}
else
{
Input IP=new Input();
FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction ft =
fragmentManager.beginTransaction();
ft.add(R.id.frag,IP);
ft.commit();
a.setText("SOLVE");
}
}
});
}
}
这里的main_activit.xml文件
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<FrameLayout
android:id="@+id/frag"
android:layout_weight="1"
android:layout_width="fill_parent"
android:layout_height="0dp"
/>
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="90dp">
<Button
android:id="@+id/press"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="@string/show" />
</RelativeLayout>
</LinearLayout>
的问题是(你可能已经看到)我不能比较(检查字符串)非内部类中的最终变量。所以,请帮助我,如果你认为我的整个想法是错误的,那么建议我适当的方式。
(如果其他文件需要然后告诉我,我会编辑)
编辑
有什么毛病我的逻辑。当我第一次按'解决'时,它转向'后退'。但是当我按下“返回”时,它不会转向“解决”。我想解决>返回>解决>返回...我错过了什么? (可能是增加/替换交易?)
定义全局视图..不需要处理最终.. – Ranjit 2014-10-12 08:29:53
如果按钮除此之外没有其他用途,则不需要声明它为final或全局声明它。只需使用'onClick'中的参数'view'即可。 'view'有'Button'本身 – Panther 2014-10-12 08:33:38
我的逻辑有问题。当我第一次按'解决'时,它转向'后退'。但是当我按下“返回”时,它不会转向“解决”。我想解决>返回>解决>返回...我错过了什么? (也许在添加/替换交易?) – ajay 2014-10-12 09:09:40