【发布时间】:2016-10-06 00:50:31
【问题描述】:
所以我给自己布置了一个家庭作业:创建一个类来进行计算,然后将该变量返回给 MainActivity 进行显示
我认为这很简单,但由于某种原因,我的 TextView 始终为空。当我尝试在新文件中重新创建错误时,TextView 没有出现错误 - 我可以将其设置得很好。
我已经在代码运行时记录了这些值,因此变量似乎正确地传递了数据。但是当我尝试将 ANY 值推送到我的 textView 中时,我得到了错误。
这里是:
package com.kserrattan.clickerdemo001;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.TextView;
import org.w3c.dom.Text;
public class MainActivity extends ActionBarActivity {
String countString;
TextView displayCount;
View parent;
public void playerTapped(View view) {
MathCalculations mathCalculations = new MathCalculations();
//parent = (View) view.getRootView();
mathCalculations.addCount();
}
public void getCount(int count) {
Log.i("addCount", Integer.toString(count));
countString = (Integer.toString(count));
displayString();
}
public void displayString() {
displayCount.setText("HIE");
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
displayCount = (TextView) findViewById(R.id.countText);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.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();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
二等:
package com.kserrattan.clickerdemo001;
import android.util.Log;
/**
* Created by Kris on 05/10/2016.
*/
public class MathCalculations {
int tapCounter;
public void addCount() {
Log.i("addCount", "HERE");
tapCounter += 1;
MainActivity mainActivity = new MainActivity();
mainActivity.getCount(tapCounter);
}
}
我只能提供部分错误,因为由于某种未知原因,其余错误的格式不正确!希望这一点就足够了……:
--------- beginning of crash
10-05 20:00:51.640 2375-2375/com.kserrattan.clickerdemo001 E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: com.kserrattan.clickerdemo001, PID: 2375
java.lang.IllegalStateException: Could not execute method of the activity
at android.view.View$1.onClick(View.java:4007)
at android.view.View.performClick(View.java:4756)
at android.view.View$PerformClick.run(View.java:19749)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5221)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at android.view.View$1.onClick(View.java:4002)
【问题讨论】:
-
您不应该自己创建
Activity。删除此代码:MainActivity mainActivity = new MainActivity(); -
删除后怎么办?我想了解为什么我不应该做我所做的事情......但你的简短回应并没有让我理解。