【发布时间】:2017-04-30 07:51:20
【问题描述】:
我尝试在(对我而言)非静态方法中使用非静态方法,但他只说我不能在静态方法中使用非静态方法...
我不知道我应该尝试什么,所以我只是问。
线路有问题
public void Rassen(View v){
Rassen.ContentRassen();
}
这里有一些代码:
package thetruenerathul.pathfinder001;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.EditText;
import thetruenerathul.pathfinder001.NewCharacter.Rassen;
import static thetruenerathul.pathfinder001.R.layout.rassen;
public class Pathfinder extends AppCompatActivity {
public static String[] Charakter = new String[3];
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_pathfinder);
}
public void NewCharacter(View v){
setContentView(R.layout.name);
}
public void ContentName(View v){
EditText Name = (EditText)findViewById(R.id.TfName);
Charakter[0] = Name.getText().toString();
setContentView(rassen);
}
public void Rassen(View v){
Rassen.ContentRassen();
}
public void ContentZurueck(View v){
setContentView(R.layout.activity_pathfinder);
}
}
和 ContentRassen() 的代码
public class Rassen extends AppCompatActivity {
public void ContentRassen(View View){
Rasse(View);
setContentView(R.layout.klassen);
}
private void Rasse(View View){
Button Rasse;
switch(View.getId())
{
case R.id.BtZwerg:
Rasse = (Button)findViewById(R.id.BtZwerg);
Pathfinder.Charakter[1] = Rasse.getText().toString();
break;
case R.id.BtHalbling:
Rasse = (Button)findViewById(R.id.BtHalbling);
Pathfinder.Charakter[1] = Rasse.getText().toString();
break;
case R.id.BtElf:
Rasse = (Button)findViewById(R.id.BtElf);
Pathfinder.Charakter[1] = Rasse.getText().toString();
break;
case R.id.BtMensch:
Rasse = (Button)findViewById(R.id.BtMensch);
Pathfinder.Charakter[1] = Rasse.getText().toString();
break;
case R.id.BtGnom:
Rasse = (Button)findViewById(R.id.BtGnom);
Pathfinder.Charakter[1] = Rasse.getText().toString();
break;
case R.id.BtHalbOrk:
Rasse = (Button)findViewById(R.id.BtHalbOrk);
Pathfinder.Charakter[1] = Rasse.getText().toString();
break;
case R.id.BtHalbElf:
Rasse = (Button)findViewById(R.id.BtHalbElf);
Pathfinder.Charakter[1] = Rasse.getText().toString();
break;
}
}
}
【问题讨论】:
-
为什么方法名和类名一样?
CountRassen不是静态的,所以你不能做Rassen.ContentRassen()... 你需要一个Rassen的实例 -
我认为您要搜索的关键字是“this”,它指的是当前对象。只需用它替换 Rasse 或 Rassen