2017-02-17 4 views
0

現在このエラーが発生しています。私はそれを試して解決するために多くの方法を試みたが役に立たなかった。どこに間違っていたのか、どうすれば解決できるのかを教えてください。ありがとう。

エラーメッセージ:

package com.uploadtodatabasevts; 
 

 
import android.content.Intent; 
 
import android.support.v7.app.AppCompatActivity; 
 
import android.os.Bundle; 
 
import android.view.View; 
 
import android.widget.AdapterView; 
 
import android.widget.ListView; 
 
import android.widget.TextView; 
 

 
import com.amazonaws.auth.CognitoCachingCredentialsProvider; 
 
import com.amazonaws.mobileconnectors.dynamodbv2.dynamodbmapper.DynamoDBMapper; 
 
import com.amazonaws.mobileconnectors.dynamodbv2.dynamodbmapper.DynamoDBQueryExpression; 
 
import com.amazonaws.mobileconnectors.dynamodbv2.dynamodbmapper.PaginatedQueryList; 
 
import com.amazonaws.regions.Regions; 
 
import com.amazonaws.services.dynamodbv2.AmazonDynamoDBClient; 
 

 
import java.util.ArrayList; 
 
import java.util.List; 
 

 
public class Advisor extends AppCompatActivity implements AdapterView.OnItemClickListener { 
 

 
    List<Outfit> outfitList; 
 

 
    @Override 
 
    protected void onCreate(Bundle savedInstanceState) { 
 
     super.onCreate(savedInstanceState); 
 
     setContentView(R.layout.activity_advisor); 
 

 
     Intent intent = getIntent(); 
 
     final String results = intent.getStringExtra("results"); 
 

 
     final TextView itemOneID = (TextView)findViewById(R.id.txtViewItemOneID); 
 
     final TextView itemOneDetail = (TextView)findViewById(R.id.txtViewItemOneDetail); 
 
     final TextView itemOnePrice = (TextView)findViewById(R.id.txtViewItemOnePrice); 
 

 

 
     ListView listView = (ListView)findViewById(R.id.listView); 
 
     outfitList = new ArrayList<Outfit>(); 
 
     Adapter adapter = new Adapter(this, outfitList); 
 
     listView.setAdapter(adapter); 
 
     listView.setOnItemClickListener(this); 
 

 
     final AmazonDynamoDBClient ddbClient = new AmazonDynamoDBClient(credentialsProvider); 
 
     final DynamoDBMapper mapper = new DynamoDBMapper(ddbClient); 
 

 
     // final Outfit outfitToFind = new Outfit(); 
 
     // outfitToFind.setItemOne_id("VT0056"); 
 

 

 
     Runnable runnable = new Runnable() { 
 
      public void run() { 
 
       //DynamoDB calls go here 
 

 
       Outfit selectedOutfit = mapper.load(Outfit.class, "22"); 
 

 
       selectedOutfit.getItemOne_id(); 
 
       selectedOutfit.getItemOne_detail(); 
 
       selectedOutfit.getItemOne_price(); 
 

 
       itemOneID.setText(selectedOutfit.getItemOne_id()); 
 
       itemOneDetail.setText(selectedOutfit.getItemOne_detail()); 
 
       itemOnePrice.setText(selectedOutfit.getItemOne_price()); 
 
       /* 
 
       DynamoDBQueryExpression queryExpression = new DynamoDBQueryExpression() 
 
         .withHashKeyValues(outfitToFind) 
 
         .withConsistentRead(false); 
 

 
       PaginatedQueryList<Outfit> result = mapper.query(Outfit.class, queryExpression); 
 
       result. 
 
       */ 
 
      } 
 
     }; 
 
     Thread mythread = new Thread(runnable); 
 
     mythread.start(); 
 

 

 

 
    } 
 

 
    @Override 
 
    public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) { 
 

 
    } 
 
}

答えて

0

すべてのビュー操作がUI threadあるmain threadに呼び出す必要があり、変更:ここで

    android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views. 

はJavaクラスですRunnable

Runnable runnable = new Runnable() { 
     public void run() { 
      //DynamoDB calls go here 

      Outfit selectedOutfit = mapper.load(Outfit.class, "22"); 

      selectedOutfit.getItemOne_id(); 
      selectedOutfit.getItemOne_detail(); 
      selectedOutfit.getItemOne_price(); 
      new Handler(Looper.getMainLooper()).post(new Runnable() { 
       @Override 
       public void run() { 
        itemOneID.setText(selectedOutfit.getItemOne_id()); 
        itemOneDetail.setText(selectedOutfit.getItemOne_detail()); 
        itemOnePrice.setText(selectedOutfit.getItemOne_price()); 
       } 
      }); 
      /* 
      DynamoDBQueryExpression queryExpression = new DynamoDBQueryExpression() 
        .withHashKeyValues(outfitToFind) 
        .withConsistentRead(false); 

      PaginatedQueryList<Outfit> result = mapper.query(Outfit.class, queryExpression); 
      result. 
      */ 
     } 
    }; 
+0

ありがとうございました!これは私の問題を解決しましたが、現在、最初のページからこのページにデータを渡す際に問題があります。私は現在qrスキャンを使用しているので、私はアイテムIDをスキャンし、このページに渡してデータを取得します。 mapper.load(Outfit.class、 "22")をmapper.loadに変更しました(Outfit.class、結果、このエラーが発生しました) – SusanooJK

+0

com.amazonaws.mobileconnectors.dynamodbv2.dynamodbmapper.DynamoDBMappingException:Nullキーが見つかりましたpublic java.lang.String com.uploadtodatabasevts.Tables.Item.getItem_id() – SusanooJK

+0

nvmエラーを解決しました。他のクラスに1行追加するのを忘れていました。 – SusanooJK

関連する問題