所以Azure为我插入以下代码插入活动(Android Studio是我正在使用的)
将以下行添加到包含启动器活动的.java文件的顶部:
import com.microsoft.windowsazure.mobileservices.*;
在您的活动中,添加一个私有变量
private MobileServiceClient mClient;
将以下代码添加到活动的onCreate方法中:
mClient = new MobileServiceClient("https://pbbingo.azurewebsites.net", this);
将样本项类添加到项目::
public class ToDoItem{ public String id; public String Text;}
在您定义mClient的同一活动中,添加以下代码:
ToDoItem item = new ToDoItem();
item.Text = "Don't text and drive";
mClient.getTable(ToDoItem.class).insert(item, new TableOperationCallback<item>(){
public void onCompleted(ToDoItem entity, Exception exception, ServiceFilter response)
{
if(exception == null){
//Insert Succeeded
} else {
//Insert Failed
}
}});
我的目标是创建一个登录页面。据我所知,上面的内容可能更多地考虑了ToList。我只是希望今天语法正确。我认为问题是我的基本类结构。我在创建时创建了一个OnClick Listener,它从我的布局中的按钮获取ID。我不需要检查数据库中的任何内容,直到按钮实际被点击登录或注册。
public class LoginClass extends AppCompatActivity{
public void onCreate(Bundle savedInstanceState) {
setContentView(R.layout.MyLoginLayout);
MobileServiceClient mClient = null;
try {
mClient = new MobileServiceClient ("myAzureWebsite", "AzureKey", this);
} catch (MalformedURLException e) {
e.printStackTrace();
}
Button Attempt = (Button) findViewById (R.id.mySubmitButton);
final MobileServiceClient finalMClient = mClient; // finalized so I can use it later.
Attempt.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick (View v) {
final View thisView = v;
final MyToDoItemClass item = new MyToDoItemClass();
In MyToDoItemClass I have two variables (Both String) Just left over from
the example of a ToDoList (they are String ID and String Text)
item.Text = "Filler";
item.ID = "Fill";
finalMClient.getTable(MyToDoItemClass.class).insert(new Table OperationCallback<item>() { //<--- I'm getting an error that the variable, item
is from an unknown class...
public void onCompleted (Item entity, Exception exception, ServiceFilterResponse response){
if(exception == null) {
Intent i = new Intent (LoginClass.this, MainActivity.class);
startActivity(i);
}else{
Toast.makeText(thisView.getContext(), "Failed", Toast.LENGTH_LONG).show();
}}
});
}
});
}}
问题在于TableOperationCallback表示MyToDoItemClass类中的项来自未知类。
答案 0 :(得分:1)
您的代码中存在许多问题,如下所示。
根据课程MobileServiceClient
的javadoc,没有方法insert(TableOperationCallback<E> callback)
,因此代码finalMClient.getTable(MyToDoItemClass.class).insert(new Table OperationCallback<item>() {...}
无效。
E
中的泛型Table OperationCallback<E>
表示您需要编写POJO类名而不是E
,而不是像item
这样的对象变量名,所以正确的代码应为new Table OperationCallback<MyToDoItemClass>
,请参阅the Oracle tutorial for Generics以了解更多详情。
下图显示了班级insert
的所有方法MobileServiceClient
。方法名称下的粗体字Deprecated
表示您不应该使用它来开发新项目,它只与新版Java SDK上的旧项目兼容。
请按照官方tutorial开发您的应用。如有任何疑虑,请随时告诉我。