【发布时间】:2014-07-29 04:51:35
【问题描述】:
我下面的代码在我启动应用程序后立即崩溃。我想在 TestActivity 的 setOnClickListener 方法中使用 Methods.class 中的“greenBackground”和“whiteBackground”方法。有没有从方法类调用方法的正确方法?任何帮助表示赞赏。
TestActivity.class:
package com.mfg.test;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
public class TestActivity extends ActionBarActivity {
Methods method = new Methods();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.program);
Button greenButton = (Button) findViewById(R.id.GreenButton);
Button whiteButton = (Button) findViewById(R.id.WhiteButton);
greenButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
method.greenBackground(v);
}
});
whiteButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
method.whiteBackground(v);
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.test, 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);
}
}
Methods.class:
package com.mfg.test;
import android.graphics.Color;
import android.view.View;
public class Methods extends TestActivity {
View rl = findViewById(R.id.rl);
public void greenBackground(View rl)
{
rl.setBackgroundColor(Color.GREEN);
}
public void whiteBackground(View rl)
{
rl.setBackgroundColor(Color.WHITE);
}
}
这是日志文件:
07-29 10:42:37.962: E/AndroidRuntime(2017): FATAL EXCEPTION: main
07-29 10:42:37.962: E/AndroidRuntime(2017): Process: com.mfg.test, PID: 2017
07-29 10:42:37.962: E/AndroidRuntime(2017): java.lang.StackOverflowError
07-29 10:42:37.962: E/AndroidRuntime(2017): at java.lang.ref.FinalizerReference.<init>(FinalizerReference.java:42)
07-29 10:42:37.962: E/AndroidRuntime(2017): at java.lang.ref.FinalizerReference.add(FinalizerReference.java:54)
07-29 10:42:37.962: E/AndroidRuntime(2017): at android.os.StrictMode$InstanceTracker.<init>(StrictMode.java:2244)
07-29 10:42:37.962: E/AndroidRuntime(2017): at android.os.StrictMode.trackActivity(StrictMode.java:1946)
07-29 10:42:37.962: E/AndroidRuntime(2017): at android.app.Activity.<init>(Activity.java:761)
07-29 10:42:37.962: E/AndroidRuntime(2017): at android.support.v4.app.FragmentActivity.<init>(FragmentActivity.java:76)
07-29 10:42:37.962: E/AndroidRuntime(2017): at android.support.v7.app.ActionBarActivity.<init>(ActionBarActivity.java:55)
07-29 10:42:37.962: E/AndroidRuntime(2017): at com.mfg.test.TestActivity.<init>(TestActivity.java:11)
07-29 10:42:37.962: E/AndroidRuntime(2017): at com.mfg.test.Methods.<init>(Methods.java:6)
07-29 10:42:37.962: E/AndroidRuntime(2017): at com.mfg.test.TestActivity.<init>(TestActivity.java:13)
07-29 10:42:37.962: E/AndroidRuntime(2017): at com.mfg.test.Methods.<init>(Methods.java:6)
07-29 10:42:37.962: E/AndroidRuntime(2017): at com.mfg.test.TestActivity.<init>(TestActivity.java:13)
07-29 10:42:37.962: E/AndroidRuntime(2017): at com.mfg.test.Methods.<init>(Methods.java:6)
07-29 10:42:37.962: E/AndroidRuntime(2017): at com.mfg.test.TestActivity.<init>(TestActivity.java:13)
07-29 10:42:37.962: E/AndroidRuntime(2017): at com.mfg.test.Methods.<init>(Methods.java:6)
07-29 10:42:37.962: E/AndroidRuntime(2017): at com.mfg.test.TestActivity.<init>(TestActivity.java:13)
07-29 10:42:37.962: E/AndroidRuntime(2017): at com.mfg.test.Methods.<init>(Methods.java:6)
07-29 10:42:37.962: E/AndroidRuntime(2017): at com.mfg.test.TestActivity.<init>(TestActivity.java:13)
07-29 10:42:37.962: E/AndroidRuntime(2017): at com.mfg.test.Methods.<init>(Methods.java:6)
07-29 10:42:37.962: E/AndroidRuntime(2017): at com.mfg.test.TestActivity.<init>(TestActivity.java:13)
07-29 10:42:37.962: E/AndroidRuntime(2017): at com.mfg.test.Methods.<init>(Methods.java:6)
07-29 10:42:37.962: E/AndroidRuntime(2017): at com.mfg.test.TestActivity.<init>(TestActivity.java:13)
07-29 10:42:37.962: E/AndroidRuntime(2017): at com.mfg.test.Methods.<init>(Methods.java:6)
07-29 10:42:37.962: E/AndroidRuntime(2017): at com.mfg.test.TestActivity.<init>(TestActivity.java:13)
07-29 10:42:37.962: E/AndroidRuntime(2017): at com.mfg.test.Methods.<init>(Methods.java:6)
07-29 10:42:37.962: E/AndroidRuntime(2017): at com.mfg.test.TestActivity.<init>(TestActivity.java:13)
07-29 10:42:37.962: E/AndroidRuntime(2017): at com.mfg.test.Methods.<init>(Methods.java:6)
07-29 10:42:37.962: E/AndroidRuntime(2017): at com.mfg.test.TestActivity.<init>(TestActivity.java:13)
07-29 10:42:37.962: E/AndroidRuntime(2017): at com.mfg.test.Methods.<init>(Methods.java:6)
07-29 10:42:37.962: E/AndroidRuntime(2017): at com.mfg.test.TestActivity.<init>(TestActivity.java:13)
07-29 10:42:37.962: E/AndroidRuntime(2017): at com.mfg.test.Methods.<init>(Methods.java:6)
07-29 10:42:37.962: E/AndroidRuntime(2017): at com.mfg.test.TestActivity.<init>(TestActivity.java:13)
07-29 10:42:37.962: E/AndroidRuntime(2017): at com.mfg.test.Methods.<init>(Methods.java:6)
07-29 10:42:37.962: E/AndroidRuntime(2017): at com.mfg.test.TestActivity.<init>(TestActivity.java:13)
07-29 10:42:37.962: E/AndroidRuntime(2017): at com.mfg.test.Methods.<init>(Methods.java:6)
07-29 10:42:37.962: E/AndroidRuntime(2017): at com.mfg.test.TestActivity.<init>(TestActivity.java:13)
07-29 10:42:37.962: E/AndroidRuntime(2017): at com.mfg.test.Methods.<init>(Methods.java:6)
07-29 10:42:37.962: E/AndroidRuntime(2017): at com.mfg.test.TestActivity.<init>(TestActivity.java:13)
07-29 10:42:37.962: E/AndroidRuntime(2017): at com.mfg.test.Methods.<init>(Methods.java:6)
07-29 10:42:37.962: E/AndroidRuntime(2017): at com.mfg.test.TestActivity.<init>(TestActivity.java:13)
07-29 10:42:37.962: E/AndroidRuntime(2017): at com.mfg.test.Methods.<init>(Methods.java:6)
07-29 10:42:37.962: E/AndroidRuntime(2017): at com.mfg.test.TestActivity.<init>(TestActivity.java:13)
07-29 10:42:37.962: E/AndroidRuntime(2017): at com.mfg.test.Methods.<init>(Methods.java:6)
07-29 10:42:37.962: E/AndroidRuntime(2017): at com.mfg.test.TestActivity.<init>(TestActivity.java:13)
07-29 10:42:37.962: E/AndroidRuntime(2017): at com.mfg.test.Methods.<init>(Methods.java:6)
07-29 10:42:37.962: E/AndroidRuntime(2017): at com.mfg.test.TestActivity.<init>(TestActivity.java:13)
07-29 10:42:37.962: E/AndroidRuntime(2017): at com.mfg.test.Methods.<init>(Methods.java:6)
07-29 10:42:37.962: E/AndroidRuntime(2017): at com.mfg.test.TestActivity.<init>(TestActivity.java:13)
07-29 10:42:37.962: E/AndroidRuntime(2017): at com.mfg.test.Methods.<init>(Methods.java:6)
07-29 10:42:37.962: E/AndroidRuntime(2017): at com.mfg.test.TestActivity.<init>(TestActivity.java:13)
07-29 10:42:37.962: E/AndroidRuntime(2017): at com.mfg.test.Methods.<init>(Methods.java:6)
07-29 10:42:37.962: E/AndroidRuntime(2017): at com.mfg.test.TestActivity.<init>(TestActivity.java:13)
07-29 10:42:37.962: E/AndroidRuntime(2017): at com.mfg.test.Methods.<init>(Methods.java:6)
07-29 10:42:37.962: E/AndroidRuntime(2017): at com.mfg.test.TestActivity.<init>(TestActivity.java:13)
07-29 10:42:37.962: E/AndroidRuntime(2017): at com.mfg.test.Methods.<init>(Methods.java:6)
07-29 10:42:37.962: E/AndroidRuntime(2017): at com.mfg.test.TestActivity.<init>(TestActivity.java:13)
07-29 10:42:37.962: E/AndroidRuntime(2017): at com.mfg.test.Methods.<init>(Methods.java:6)
07-29 10:42:37.962: E/AndroidRuntime(2017): at com.mfg.test.TestActivity.<init>(TestActivity.java:13)
07-29 10:42:37.962: E/AndroidRuntime(2017): at com.mfg.test.Methods.<init>(Methods.java:6)
07-29 10:42:37.962: E/AndroidRuntime(2017): at com.mfg.test.TestActivity.<init>(TestActivity.java:13)
07-29 10:42:37.962: E/AndroidRuntime(2017): at com.mfg.test.Methods.<init>(Methods.java:6)
07-29 10:42:37.962: E/AndroidRuntime(2017): at com.mfg.test.TestActivity.<init>(TestActivity.java:13)
07-29 10:42:37.962: E/AndroidRuntime(2017): at com.mfg.test.Methods.<init>(Methods.java:6)
07-29 10:42:37.962: E/AndroidRuntime(2017): at com.mfg.test.TestActivity.<init>(TestActivity.java:13)
07-29 10:42:37.962: E/AndroidRuntime(2017): at com.mfg.test.Methods.<init>(Methods.java:6)
07-29 10:42:37.962: E/AndroidRuntime(2017): at com.mfg.test.TestActivity.<init>(TestActivity.java:13)
07-29 10:42:37.962: E/AndroidRuntime(2017): at com.mfg.test.Methods.<init>
“Methods method = new Methods();”似乎有问题TestActivity 类中的行。我该如何解决这个问题?
【问题讨论】:
-
发布您遇到的错误?并发布日志猫..
-
我认为您必须使用 Fragment Activity 来满足您的要求。
-
@MFG 您希望在 class2 中访问 class 1 的哪些方法?
-
你好。我将 Buttons 移入 onCreate 并再次运行该应用程序以获取其日志。
标签: android class button methods listener