多对多关系

2023-12-12

我在 Parse.com 上有两个课程:图像和数据。在数据类中,我保存了 3 个字段:姓名、手机号码和职业。在图像类中,我正在保存图像。

我必须在这两个类之间创建关系,以便我可以使用相应的手机号码获取图像。一个手机号码可以保存多张图片,表数据可以有多个手机号码。

无法找到如何获取具有特定手机号码的图像。请帮助,因为我已经阅读了文档。提前致谢。这是我的代码:

public class GetImage extends Activity {
// Declare Variables
GridView gridview;
List<ParseObject> ob;
ProgressDialog mProgressDialog;
GridViewAdapter adapter;
Button imgbtn;
EditText mbltxt;
String mobileNumber;
private List<PhoneList> phonearraylist = null;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    // Get the view from gridview_main.xml
    setContentView(R.layout.listview_main);
    // Execute RemoteDataTask AsyncTask
    imgbtn=(Button) findViewById(R.id.imgbtn);
    mbltxt = (EditText) findViewById(R.id.mbltxt);

    imgbtn.setOnClickListener(new View.OnClickListener(){

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub

                if (mbltxt.getText().toString().equals("")) {
                    Toast.makeText(getBaseContext(), "Please enter a valid mobilenumber", Toast.LENGTH_LONG).show();    
                }else {
             new RemoteDataTask().execute();
        } 
        }
    });       
}

询问手机号码后,点击获取图片按钮即可查询该手机号码的所有图片。

// RemoteDataTask AsyncTask
private class RemoteDataTask extends AsyncTask<Void, Void, Void> {
    @Override
    protected void onPreExecute() {
        super.onPreExecute();
        // Create a progressdialog
        mProgressDialog = new ProgressDialog(GetImage.this);
        // Set progressdialog title
        mProgressDialog.setTitle("Images");
        // Set progressdialog message
        mProgressDialog.setMessage("Loading...");
        mProgressDialog.setIndeterminate(false);
        // Show progressdialog
        mProgressDialog.show();
    }

    @Override
    protected Void doInBackground(Void... params) {
        // Create the array
        phonearraylist = new ArrayList<PhoneList>();
        try {
            // Locate the class table named "Image" in Parse.com
            ParseRelation<ParseObject> relation = currentUser.getRelation("img");
            ParseQuery<ParseObject> query = new ParseQuery<ParseObject>("Image");

            ob = query.find();
            for (ParseObject imgob : ob) {
                ParseFile image = (ParseFile) imgob.get("ImageFile");
                PhoneList map = new PhoneList();
                map.setPhone(image.getUrl());
                phonearraylist.add(map);
            }
         }catch (ParseException e) {
            Log.e("Error", e.getMessage());
            e.printStackTrace();
        }
        return null;
    }

    @Override
    protected void onPostExecute(Void result) {
        // Locate the gridview in gridview_main.xml
        gridview = (GridView) findViewById(R.id.gridview);
        // Pass the results into ListViewAdapter.java
        adapter = new GridViewAdapter(GetImage.this,
                phonearraylist);
        // Binds the Adapter to the ListView
        gridview.setAdapter(adapter);
        // Close the progressdialog
        mProgressDialog.dismiss();
    }
}}

我不是 Android 开发人员,但我会尝试解决这个问题。您有两个类:数据和图像。每个数据实例都可以与许多图像相关联。使每个 Data 实例唯一的信息是名为 Mobile-Number 的属性。

您有三个选择: 1.Parse.com数组 2.Parse.com关系 3. 关联类(如 Waquas 所建议的)。

  1. A Parse.com 数组如果数据实例链接到的图像少于大约 50 个,这是一个很好的解决方案。当您将图像关联到数据时,请使用 Parse.com“add”方法:
aData.add("images", someImageObject);
aData.saveInBackground();

可以一次性关联一系列图像:

aData.addAll("images", Arrays.asList(image1, image2, image3));

当您从解析中检索 Data 实例时,Image 对象显示为“指针”数组。要拉回实际的 Image 对象,请使用“fetch”。有关如何使用 fetch 的示例,请查找 Parse.com 文档的这一部分:

默认情况下,获取对象时,相关的 ParseObject 不会被获取 取来的。这些对象的值无法检索,直到它们具有 像这样被获取:

fetchedComment.getParseObject("post")
    .fetchIfNeededInBackground(new GetCallback<ParseObject>() {
        public void done(ParseObject object, ParseException e) {
          String title = post.getString("title");
        }
    }); 
  1. A Parse.com 关系比阵列解决方案更具可扩展性。如果单个数据与数百或数千个图像相关联,那么这是正确的解决方案。我已经开始将数组切换为我自己的代码中的关系。


    ParseRelation relation = aData.getRelation("images");    
    relation.add(someImageObject);     
    aData.saveInBackground();
  
  1. An 关联类如果存在有关数据和图像之间关系的额外信息,那么这是一个很好的解决方案 - 例如,如果用户可以将图像标记为“我最喜欢的图像之一”。要解决此问题,请在 Parse.com 中创建一个名为 ImageAssociation 的新类。该类具有三个属性:

    • theDataObject(或只是数据对象的手机号码)
    • 图像对象
    • 是最喜欢的(真或假)

我不会深入讨论这个解决方案的机制。请点击 Waquas 答案中的链接以获取一般信息。另请参阅 Parse.com 有关“关系”的文档。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

多对多关系 的相关文章

随机推荐

  • 为什么在创建 SqlClient 类型时会出现缺少方法异常运行时?

    我有以下代码 open FSharp Data
  • $_SERVER['REQUEST_URI'] 也带有 #hash 吗?

    如果我要求site page php hash the SERVER REQUEST URI 只是 page php 有没有办法在 php 没有后来的 ajax 中知道用户请求的页面 hash Thanks 简短回答 不 哈希不会传递到服务
  • Grails 使用带有 3 个以上逻辑参数的动态查找器

    我成功地使用 Hibernate 的动态查找器在数据库中进行搜索 def temp User findByNameAndStreet name street 虽然 我需要这样的三重逻辑论证 def temp User findByNameA
  • 嵌入式 Flash MP3 播放器在某些文件上速度缓慢,在其他文件上正常

    我正在使用基于 Flash 的嵌入式 MP3 播放器 独立版本WordPress 音频播放器 准确的说 在客户端的网页上播放音频 鉴于基于 Flash 的播放器的性质 AFAIK 他们都使用 Flash 的音频 视频解码库 确切的播放器产品
  • 如何向 Console.ReadLine() 添加超时?

    我有一个控制台应用程序 我想在其中向用户提供x秒响应提示 如果在一段时间后没有输入 程序逻辑应该继续 我们假设超时意味着空响应 解决这个问题最直接的方法是什么 我惊讶地发现 5 年后 所有答案仍然存在以下一个或多个问题 使用了 ReadLi
  • 无法使用 Facebook API 获取位置和电子邮件

    在我的 Android 应用程序中 我开发了这段代码来使用我的帐户登录并获取用户属性 例如姓名 位置和电子邮件 问题是我可以获得姓名 但无法获得电子邮件和位置 当我尝试我的代码而不尝试捕获应用程序崩溃和我的日志点时getproperty e
  • @RequestMapping正则表达式

    我正在尝试为 spring RequestMapping 注释创建 value 属性来像这样映射 url educationDistrict 308 action resetAddressesForYear 1 and this educa
  • 使用读取繁重的 Slave 管理热备中 Postgres 复制的冲突和滞后

    要求 Avoid terminating connection due to conflict with recovery错误也可以接受replication lag Google Cloud PostgreSQL 9 6 复制已打开 使用
  • 如何在 Objective C 中创建单例类

    如何在 Objective C 中创建单例类 好吧 appDev 您可能会在网络上找到很多不同的技术来做到这一点 然而 对于iOS应用程序开发 我认为最方便的方法是执行以下操作 编写获取单例对象的方法 建议 使用dispatch once线
  • 自定义 UserManager 始终返回 null

    我正在尝试创建自己的UserManager从原始版本延伸 当我通过电子邮件进行搜索时 找不到该用户 但是如果我从上下文中进行搜索 如果我找到用户 请参阅Get方法 为了验证它是否确实得到了很好的实现 我覆盖了FindByEmailAsync
  • UIImagePicker 的内存问题

    我正在构建一个应用程序 它有几个不同的部分 所有这些部分都非常注重图像 它与我客户的网站相关 它们是 高设计 类型的服装 该应用程序的一部分是从相机或库上传的图像 以及显示缩略图网格的表格视图 相当可靠的是 当我处理 UIImagePick
  • 在 HTML 画布上设置文本格式 [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 我正在使用 HTML Canvas 和 vanilla javascript 制作游戏 我是 javascript 新手 所以这可能比我想象的要容易 我有两个代表卡片的对象数组
  • 处理开关盒

    我怎样才能用 switch 语句做这样的事情 String prototype startsWith function str return this indexOf str 0 switch myVar case myVar starts
  • 既然 appsettings.json 就足够了,那么 Hosting.json 有什么意义呢?

    在 NET Core 2 Web API 应用程序中 我可以覆盖配置urls using appsettings json 但在官方文档他们引入了额外的文件 hosting json 为什么 增加复杂性有什么意义 下面的代码完全可以使用ap
  • Python:无法使用 odeint 和 Signum 函数求解微分方程

    我正在尝试解决这个问题 U 在哪里 here s c e t e dot t and e t theta t thetad t and e dot t theta dot t thetad dot t 其中thetad thetadesir
  • 插入 MySQL 表 PHP

    我在制作一个简单的表单来将数据插入 MySQL 表时遇到了一些麻烦 我不断收到此 SQL 错误 错误 您的 SQL 语法有错误 请检查手册 与您的 MySQL 服务器版本相对应 以便使用正确的语法 第 1 行 stock ItemNumbe
  • 传单 - 我似乎无法让基本示例发挥作用

    我一直在尝试让 Leaflet 一个网络地图 API 工作几个小时 起初我犯了一个错误 试图做太多事情 现在我只是试图让基本的例子发挥作用 这是我的代码 HTML 和 Javascript
  • PHP 自动缩小。有没有?

    我使用 PHP Minify 它非常棒 但我的问题是 是否有任何 PHP 插件或其他东西可以自动检测 javascript css 代码并自动缩小它 谢谢 JavaScript 缩小器 看一看here require once jsmin
  • Web 应用程序 [ROOT] 似乎已启动名为 [pollingConfigurationSource] 的线程,但未能停止它。内存泄漏

    您好 我在运行项目时遇到内存泄漏错误 我在用spring boot quards scheduler liquibase postgreSQL 9 6 这些是我们正在使用的技术 Error 12018 10 15 11 43 19 005
  • 多对多关系

    我在 Parse com 上有两个课程 图像和数据 在数据类中 我保存了 3 个字段 姓名 手机号码和职业 在图像类中 我正在保存图像 我必须在这两个类之间创建关系 以便我可以使用相应的手机号码获取图像 一个手机号码可以保存多张图片 表数据