在视图下方显示烤面包部件 [英] Show toast widget underneath a view
问题描述
查看布局在这里。
通常,烤面包视图出现在屏幕的底部中心。 OnClick被调用后,我想让它出现在下面(8dp)Submit按钮。如何实现这一点。
请参阅我的更新完成项目在这里。
package com.lookjohn.guessnumber;
import java.util.Random;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends Activity {
随机随机;
按钮按钮;
EditText文字;
int input;
int MIN,MAX;
int comp;
int guesses;
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
random = new Random();
button =(Button)findViewById(R.id.button1);
text =(EditText)findViewById(R.id.editText1);
MIN = 1;
MAX = 100;
comp = random.nextInt(MAX - MIN + 1)+ MIN; //生成1到100之间的随机数。
guesses = 0;
button.setOnClickListener(myhandler1);
}
View.OnClickListener myhandler1 = new View.OnClickListener(){
public void onClick(View v){
/ /实现最大数量的猜测,检测
//数量的猜测并从方法返回。
String value = text.getText()。toString(); //从editTextView的输入获取值
//如果用户提交一个空的EditText,返回以防止崩溃。
if(value.isEmpty()){
Toast.makeText(MainActivity.this,你必须输入一个猜测!,Toast.LENGTH_SHORT);
return;
}
input = Integer.parseInt(value); //将字符串转换为整数
guesses ++;
if(input> 100){
Toast.makeText(MainActivity.this,
该数字大于100. Not valid!,
Toast.LENGTH_SHORT)。显示();
return;
}
else if(input< comp)
Toast.makeText(MainActivity.this,
你的数字太小了,
Toast.LENGTH_SHORT).show();
else if(input> comp)
Toast.makeText(MainActivity.this,
你的数字太大了,
Toast.LENGTH_SHORT).show();
else
Toast.makeText(MainActivity.this,
好工作!答案是+ comp +.\\\
+
你做了+猜猜+ guesses.\\\
+
重新启动应用再试一次。,
Toast.LENGTH_LONG).show();
}
};
@Override
public boolean onCreateOptionsMenu(菜单菜单){
//扩充菜单;如果存在,则会将项目添加到操作栏。
getMenuInflater()。inflate(R.menu.main,menu);
返回true;
}
}
从我学到的知识来看,这是我想到的最好的方案。如果(输入> 100){
Toast($)
toast = Toast.makeText(MainActivity.this,
R.string.over_guess,
Toast.LENGTH_SHORT);
toast.setGravity(Gravity.CENTER,0,0);
toast.show();
return;
}
else if(input< comp){
Toast toast = Toast.makeText(MainActivity.this,
getString(R.string.guess_low,input),
Toast.LENGTH_SHORT);
toast.setGravity(Gravity.CENTER,0,0);
toast.show();
}
else if(input> comp){
Toast toast = Toast.makeText(MainActivity.this,
getString(R.string.guess_high,input),
Toast.LENGTH_SHORT);
toast.setGravity(Gravity.CENTER,0,0);
toast.show();
}
else {
Toast toast = Toast.makeText(MainActivity.this,
getString(R.string.correct,comp,guesses),
Toast.LENGTH_LONG );
toast.setGravity(Gravity.CENTER,0,0);
toast.show();
}
For those who helped me out earlier regarding this project, thank you very much! My code no longer has any problems, and I made extra tweaks. Now that the app is actually robust now, I want to do one more thing.
See screenshot of the layout here.
Normally, the toast view appears at the bottom center of the screen. I want to make it appear just below (8dp) the Submit button once OnClick is called. How can I accomplish this.
See my updated complete project here.
package com.lookjohn.guessnumber;
import java.util.Random;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends Activity {
Random random;
Button button;
EditText text;
int input;
int MIN, MAX;
int comp;
int guesses;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
random = new Random();
button = (Button)findViewById(R.id.button1);
text = (EditText)findViewById(R.id.editText1);
MIN = 1;
MAX = 100;
comp = random.nextInt(MAX - MIN + 1) + MIN; // Generate random number between 1 and 100.
guesses = 0;
button.setOnClickListener(myhandler1);
}
View.OnClickListener myhandler1 = new View.OnClickListener() {
public void onClick(View v) {
// Implemented max number of guesses, detect
// number of guesses and return from the method.
String value = text.getText().toString(); // Get value from input from editTextView
// If user submits an empty EditText, return to prevent a crash.
if (value.isEmpty()) {
Toast.makeText(MainActivity.this, "You must enter a guess!", Toast.LENGTH_SHORT);
return;
}
input = Integer.parseInt(value); // Turn string into integer
guesses++;
if (input > 100) {
Toast.makeText(MainActivity.this,
"That number is greater than 100. Not Valid!",
Toast.LENGTH_SHORT).show();
return;
}
else if (input < comp)
Toast.makeText(MainActivity.this,
"Your number is too small.",
Toast.LENGTH_SHORT).show();
else if (input > comp)
Toast.makeText(MainActivity.this,
"Your number is too big.",
Toast.LENGTH_SHORT).show();
else
Toast.makeText(MainActivity.this,
"Good job! The answer was " + comp + ".\n" +
"You made " + guesses + " guesses.\n" +
"Restart the app to try again.",
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;
}
}
From what I learned, this is the best I came up with for the program. Doing this puts the Toast message in the center of the phone.
if(input > 100) {
Toast toast = Toast.makeText(MainActivity.this,
R.string.over_guess,
Toast.LENGTH_SHORT);
toast.setGravity(Gravity.CENTER, 0, 0);
toast.show();
return;
}
else if(input < comp) {
Toast toast = Toast.makeText(MainActivity.this,
getString(R.string.guess_low, input),
Toast.LENGTH_SHORT);
toast.setGravity(Gravity.CENTER, 0, 0);
toast.show();
}
else if(input > comp) {
Toast toast = Toast.makeText(MainActivity.this,
getString(R.string.guess_high, input),
Toast.LENGTH_SHORT);
toast.setGravity(Gravity.CENTER, 0, 0);
toast.show();
}
else {
Toast toast = Toast.makeText(MainActivity.this,
getString(R.string.correct, comp, guesses),
Toast.LENGTH_LONG);
toast.setGravity(Gravity.CENTER, 0, 0);
toast.show();
}
这篇关于在视图下方显示烤面包部件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!