我正在学习如何使用Java在Android Studio中设置Surface View。这是我的代码:
setContentView(v);
在
public OurView(Context context){
super(context);
holder = getHolder();
}
我收到错误消息:
"无法解决方法 的setContentView(com.example.ben3.pl2.SurfaceView.OurView)"
并在
#include <iostream>
#include <string>
#include <cstring>
using namespace std;
struct ListNode {
int val;
ListNode *next;
ListNode(int x): val(x), next(NULL) {}
};
class Solution {
public:
ListNode *getIntersection(ListNode *A, ListNode *B) {
ListNode *p1 = A;
ListNode *p2 = B;
if(p1==NULL || p2==NULL)
return NULL;
while(p1!=NULL && p2!=NULL && p1!=p2) {
p1=p1->next;
p2=p2->next;
if(p1==p2)
return p1;
if(p1==NULL) p1=B;
if(p2==NULL) p2=A;
}
return p1;
}
void print(ListNode *p) {
while(p!=NULL) {
cout<< p->val << " " ;
p=p->next;
}
cout<<endl;
}
};
int main() {
Solution s;
ListNode *p1 = new ListNode(5);
p1->next = new ListNode(11);
s.print(p1);
//similar for p2
ListNode *p2 = new ListNode(6);
p2->next = new ListNode(11);
s.print(p2);
s.getIntersection(p1,p2);
return 0;
}
我收到了错误:
&#34;无法解析方法super(android.content.Context)&#34;
&#34;无法解析方法getHolder()&#34;
任何人都可以帮助我吗?该教程是从2011年开始的,所以它可能与他们有旧版本的AS有关,或者我只是错过了一些东西。
答案 0 :(得分:2)
你应该在这里解决一些问题。将您的班级和文件重命名为MyActivity
或至少SurfaceView
以外的其他内容,以避免混淆。您想使用SurfaceView
中的android.view.SurfaceView
而不是您自己的import android.view.SurfaceView;
,因此您应该导入该OurView
。
setContentView()
此外,您必须先创建import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
public class MyActivity extends Activity {
private OurView v;
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
v = new OurView(this);
setContentView(v);
}
@Override
protected void onPause() {
super.onPause();
v.pause();
}
@Override
protected void onResume() {
super.onResume();
v.resume();
}
public class OurView extends SurfaceView implements Runnable {
Thread t = null;
SurfaceHolder holder;
boolean isOk = false;
public OurView(Context context){
super(context);
holder = getHolder();
}
public void run(){
if(isOk){
}
}
public void pause(){
isOk = false;
while (true){
try {
t.join();
t = null;
break;
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
public void resume(){
isOk = true;
t = new Thread(this);
t.start();
}
}
}
的新实例,然后才能在private KeyboardView kv;
private Keyboard keyboard;
中使用它。
以下是您应用更改的代码。
case 37:
keyboard = new Keyboard(this, R.xml.qwerty2);
kv.setKeyboard(keyboard);
kv.setOnKeyboardActionListener(this);
break;
答案 1 :(得分:1)
尝试在setcontentview方法之前设置您的视图 像这样
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
v = new OurView(this);
setContentView(v);
}
让我保持最新