我有一个20秒的倒数计时器成功地在我的琐事游戏上工作.我想在屏幕上添加一个ProgressBar(不是a ProgressDialog).我发现Android的开发者指南令人困惑.我搜索了大量示例,并尝试将它们组合到我的代码中.现在,当我运行游戏时显示的是一个空栏,在每个游戏问题中没有"进展".
QuestionView.java
public class QuestionView extends Activity {
int correctAnswers = 0;
int wrongAnswers = 0;
int answer = 0;
int i = 0;
long score = 0;
long startTime = 20000;
long interval = 1000;
long points;
boolean timerHasStarted = false;
String category;
Button answer1, answer2, answer3, answer4;
TextView question, pointCounter, questionNumber, timeCounter;
ArrayList<Question> queries;
Timer cdTimer;
ProgressBar bar;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.questionviewmain);
answer1 = (Button)findViewById(R.id.answer1);
answer2 = (Button)findViewById(R.id.answer2);
answer3 = …Run Code Online (Sandbox Code Playgroud) 我有一个有ScrollView125个按钮的Activity .125个按钮是我游戏中的Levels,慢慢解锁(想想Candy Crush Saga).现在,如果用户处于水平位置,比如说,125中的88,则用户必须手动一直向下滚动到按钮88.
我的问题是,我怎么做到这样,当Activity加载时,它会自动向下滚动并将ScrollView集中在某个按钮上?
下面是我如何以编程方式创建和填充按钮的代码.
ScrollView scrollView;
@Override
public void onCreate(Bundle savedInstanceState) {
LinearLayout lay = (LinearLayout)findViewById(R.id.linearlayout);
for(int i = 0; i < 125; i++) {
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, 0);
params.weight = 1;
params.gravity = Gravity.CENTER;
if(i == 0) {
TextView textview = new TextView(this);
textview.setLayoutParams(params);
textview.setTextSize(15);
textview.setText(c.getResources().getString(R.string.l1to5));
TextView textview2 = new TextView(this);
textview2.setLayoutParams(params);
textview.setTextSize(15);
textview2.setText(c.getResources().getString(R.string.goal100));
TextView textview3 = new TextView(this);
textview3.setLayoutParams(params);
textview.setTextSize(15);
textview3.setText(c.getResources().getString(R.string.catRandom));
if((getResources().getConfiguration().screenLayout &
Configuration.SCREENLAYOUT_SIZE_MASK) ==
Configuration.SCREENLAYOUT_SIZE_LARGE) {
textview.setTextSize(22);
textview2.setTextSize(22);
textview3.setTextSize(22);
} else …Run Code Online (Sandbox Code Playgroud) 我知道如何通过长期非优雅的方式完成这项任务,但我想缩短它并使其更优雅.下面我展示了我可以做的非优雅的方式以及我想如何优雅地做到这一点.优雅的方式不是编译.我评论了错误的位置和错误.
任何代码结构帮助表示赞赏!先感谢您.
Results.java
public class Results extends Activity {
int x = -1;
Button q1details, q2details, q3details, q4details, q5details, q6details, q7details, q8details, q9details, q10details;
final Context context = this;
@Override
public void onCreate(Bundle savedInstanceState) {
q1details = (Button)findViewById(R.id.q1details);
q2details = (Button)findViewById(R.id.q2details);
q3details = (Button)findViewById(R.id.q3details);
q4details = (Button)findViewById(R.id.q4details);
q5details = (Button)findViewById(R.id.q5details);
q6details = (Button)findViewById(R.id.q6details);
q7details = (Button)findViewById(R.id.q7details);
q8details = (Button)findViewById(R.id.q8details);
q9details = (Button)findViewById(R.id.q9details);
q10details = (Button)findViewById(R.id.q10details);
buttonList.add(q1details); buttonList.add(q2details); buttonList.add(q3details); buttonList.add(q4details); buttonList.add(q5details); buttonList.add(q6details); buttonList.add(q7details); buttonList.add(q8details); buttonList.add(q9details); buttonList.add(q10details);
for(int i = 0; i …Run Code Online (Sandbox Code Playgroud) 我想在屏幕上显示一个小图像.我希望它是一个小广场.使用下面的代码,它显示为一个长扁平矩形.我附上了下面的图片.
java代码
ImageView q1Image = (ImageView)findViewById(R.id.q1Image);
q1Image.setScaleType(ScaleType.FIT_XY);
Run Code Online (Sandbox Code Playgroud)
xml代码
<TableRow
android:id="@+id/row4"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1" >
<ImageView
android:id="@+id/q1Image"
android:layout_width="10dp"
android:layout_height="10dp"
android:layout_weight=".1"
android:textSize="8sp"
android:gravity="center_horizontal" />
Run Code Online (Sandbox Code Playgroud)

编辑
如果我使宽度和高度等于50dp每个,图像变大但仍然是一个看起来扁平的矩形.
有人试过了Google Play Game Services leaderboard吗?我目前使用的SwarmConnect是我的排行榜,但我对他们的UI和功能并不是100%满意.
自Google I/O以来我一直在搜索并且无法找到示例.有人可以提供照片,视频或链接到完成的排行榜的样子吗?我很想看看它与之相比SwarmConnect.
如果这不是发布此信息的地方,请告知应该在哪个Q/A网站上发布.
我正在尝试在Eclipse中设置我的项目以实现新的Android Play Services.你可以在我的下面3个屏幕截图所看到BibleTriviaLite是我的项目,然后BaseGameUtils和google-play-services_lib是我进口的,由库,然后使两个项目BibleTriviaLite中引用它们.
现在我在每个项目中都有错误.基本上每个导入和内置类(TextView,Button,Bundle,Context等)都无法解析为类型.我猜我的罐子搞砸了.我从来没有完全理解它们,所以我很难将所有的罐子放在正确的位置并使我的项目工作.
在导入2个Android库(BaseGameUtils和google-play-services_lib)之前,BibleTriviaLite功能齐全,所以我知道代码可以运行.
我的问题是如何成功地将这两个Android库成功集成到我的主项目中,以便我可以继续集成排行榜.如果需要任何特定代码进行故障排除,请告诉我,我可以提供.我在下面提供了3个截图,以显示我的所有罐子在3个项目中的每个项目.



我无法从另一个类访问我的ArrayList.我正在关注过去的例子和互联网示例,但似乎无法让它发挥作用.
我发布了3个课程,只是为了彻底.错误发生在我的QuestionView.java类中.我在我的代码中记录了错误消息的位置和内容.
对我的代码的任何其他部分的任何其他建议表示赞赏.:)
QuestionView.java
public class QuestionView extends Activity {
Quiz q = new Quiz();
ArrayList<Question> queries = new ArrayList<Question>();
queries.getTenQs(); //error here: "Syntax error on token "getTenQs", Identifier expected after this token"
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.questionviewmain);
TextView question = (TextView)findViewById(R.id.question);
Button answer1 = (Button)findViewById(R.id.answer1);
Button answer2 = (Button)findViewById(R.id.answer2);
Button answer3 = (Button)findViewById(R.id.answer3);
Button answer4 = (Button)findViewById(R.id.answer4);
for(int i = 0; i < 10; i++) {
question.setText(queries.get(i).getQuery());
answer1.setText(queries.get(i).getA1());
answer2.setText(queries.get(i).getA2());
answer3.setText(queries.get(i).getA3());
answer4.setText(queries.get(i).getA4());
//more code...
}
}
} …Run Code Online (Sandbox Code Playgroud) 我是Apple iPhone用户.我从来没有拥有任何类型的Android,所以我习惯了按钮,我必须点击屏幕返回屏幕,而不是Android的物理"后退按钮".iPhone开发人员必须对后退按钮进行编码,以便用户操作游戏,但Android开发人员不一定需要编写后退按钮,而只需依靠手机上的物理按钮即可.
我的问题是,我是否可以不为我的Android应用程序编写按钮,只是让用户使用手机上的硬件返回按钮?如果没有可以点按的后退按钮,Android用户会本能地知道点击物理后退按钮跳回屏幕吗?我真的不知道这个答案,因为我从来没有拥有Android,总是依赖按钮编码的iPhone.
下图是我在后退按钮编码而不是依靠手机上的物理按钮.我想从我的代码中退出后退按钮.

我收到这个lint警告错误: highscores.xml has more than 80 views bad for performance.这是我的高分表,有15行3列.这是我的应用程序的Lite版本,我的付费版本将容纳30行.
我的问题是如何优化此代码?一定有更好的方法.
highscores.xml
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/relativelayout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:stretchColumns="*"
android:orientation="vertical"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:paddingTop="5dp"
android:paddingBottom="65dp"
android:background="@drawable/scroll" >
<TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:textStyle="bold"
android:textSize="18sp"
android:paddingBottom="10dp"
android:paddingTop="65dp" />
<LinearLayout
android:id="@+id/linearlayout"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:paddingTop="5dp" >
<Button
android:id="@+id/homeBtn"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textSize="14sp" />
<Button
android:id="@+id/clearHS"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textSize="14sp" />
</LinearLayout>
<ScrollView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:paddingLeft="8dp"
android:paddingRight="8dp"
android:paddingTop="8dp"
android:paddingBottom="8dp"
android:background="@drawable/scrollviewborder"
android:layout_below="@id/title"
android:layout_above="@id/linearlayout"
android:fillViewport="true"
android:scrollbars="none" >
<TableLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<TableRow
android:layout_width="wrap_content"
android:layout_height="wrap_content" …Run Code Online (Sandbox Code Playgroud) 我正在尝试实现此处Google Play Game Services找到的排行榜.我导入了库,使其成为库并将其添加到我的主项目中.但是有一点红色X和一个红色!在我的项目上(见下图).BaseGameUtils

此外,它表示C:\Users\lyonsmg\Downloads\android-samples-master\BaseGameUtils\bin我的主要项目的Android Dependencies中缺少BibleTriviaLite(见下图).

我究竟做错了什么?我能够google-play-services_lib正确导入但不能导入BaseGameUtils.我怎样才能解决这个问题?
我有一个工作琐事游戏,我现在正试图实现一个高分.我创建了一个扩展SQLiteOpenHelper的子类DatabaseHelper类.我试图从另一个类调用子类DatabaseHelper中的方法,并得到错误.这些类不会编译,因此没有LogCat输出.我在代码中评论了错误.
代码结构建议也很受欢迎!
Highscores.java
public class Highscores extends Activity {
DatabaseHelper dh;
SQLiteDatabase db;
@Override
public void onCreate(Bundle savedInstanceState) {
dh = new DatabaseHelper(context);
}
public class DatabaseHelper extends SQLiteOpenHelper {
public DatabaseHelper(Context context) {
//code
}
public boolean check(long score, int percentage) {
//code
}
}
}
Run Code Online (Sandbox Code Playgroud)
Results.java
public class Results extends Activity {
DatabaseHelper dh; //Error: "DatabaseHelper cannot be resolved to a type."
public void onCreate(Bundle savedInstanceState) {
dh = new DatabaseHelper(); //Error: "DatabaseHelper cannot be resolved to a …Run Code Online (Sandbox Code Playgroud) 这是我的代码(我删除了我的导入声明以节省帖子中的空间):
public class MainActivity extends Activity {
private static final int PICK_CONTACT_REQUEST = 1; // The request code
Uri numToCall;
String telAdded;
public void Call(View view) {
if (checkBox.isChecked()) {
Uri numToCall = Uri.parse(telAdded);
Intent callIntent = new Intent(Intent.ACTION_CALL, numToCall);
startActivity(callIntent);
} else {
Uri numToCall = Uri.parse(telAdded);
Intent callIntent = new Intent(Intent.ACTION_CALL, numToCall);
startActivity(callIntent);
}
}
public void openContacts(View view) {
Intent pickContactIntent = new Intent(Intent.ACTION_PICK,
Uri.parse("content://contacts"));
pickContactIntent.setType(Phone.CONTENT_TYPE); // Show user only
// contacts w/ phone
// numbers
startActivityForResult(pickContactIntent, …Run Code Online (Sandbox Code Playgroud) android ×12
java ×11
arraylist ×1
back-button ×1
bin ×1
button ×1
database ×1
eclipse ×1
image ×1
imageview ×1
jar ×1
leaderboard ×1
lint ×1
mobile ×1
performance ×1
progress-bar ×1
scrollview ×1
subclass ×1
xml ×1