각각 하나의 목록 뷰가 포함 된 세 조각을 실행하는 Android 애플리케이션을 만듭니다. 현재 Parse.com에서 만든 테이블의 내용으로 listview 중 하나를 채우려고합니다. 나는이 튜토리얼을 따라 갔다 : http://www.androidbegin.com/tutorial/android-parse-com-listview-images-and-texts-tutorial/ 그리고 내 조각에서 작동하도록 적용했다. 문제는 내가 내 응용 프로그램을 실행할 때마다, 그것은 약 3 초 동안 데이터를로드 한 후 갑자기 충돌 날이 오류를 제공하지만입니다 :Java IO 예외 Parse.com의 데이터로 listview를 채울 때 깨진 파이프
ddmlib: Broken pipe
java.io.IOException: Broken pipe
at sun.nio.ch.FileDispatcher.write0(Native Method)
at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:29)
at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:69)
at sun.nio.ch.IOUtil.write(IOUtil.java:40)
at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:336)
at com.android.ddmlib.JdwpPacket.writeAndConsume(JdwpPacket.java:213)
at com.android.ddmlib.Client.sendAndConsume(Client.java:642)
at com.android.ddmlib.HandleHeap.sendREAQ(HandleHeap.java:348)
at com.android.ddmlib.Client.requestAllocationStatus(Client.java:488)
at com.android.ddmlib.DeviceMonitor.createClient(DeviceMonitor.java:835)
at com.android.ddmlib.DeviceMonitor.openClient(DeviceMonitor.java:803)
at com.android.ddmlib.DeviceMonitor.processIncomingJdwpData(DeviceMonitor.java:763)
at com.android.ddmlib.DeviceMonitor.deviceClientMonitorLoop(DeviceMonitor.java:652)
at com.android.ddmlib.DeviceMonitor.access$100(DeviceMonitor.java:44)
at com.android.ddmlib.DeviceMonitor$3.run(DeviceMonitor.java:580)
나는이 오류가 발생하고 왜 전혀 생각이 없다. 다음은 내 listview를 채우려는 조각의 코드입니다. 나는 또한 목록보기에 대한 사용자 지정 어댑터를 사용하지만, 나는 잘 작동 확신하므로 내 다른 프로젝트에서 동일한 하나를 사용하고 있습니다. 데이터를 가져 오려면 새 RemoteDataTask()를 호출합니다. execute(); onCreateView에서. 이것은 내가 잘못되고 있다고 생각하는 곳입니다. 나는 또한 모든 내 테이블 이름이 내 구문 분석 데이터베이스에서 정확하다고 확신합니다.
public class fraternitiesFragment extends Fragment {
private SwipeRefreshLayout swipeLayoutFraternities;
private ListView fratList;
List<ParseObject> objList;
ProgressDialog mProgressDialog;
fraternitiesAdapter fratAdapter;
private List<Frat> fraternitiesList = null;
public fraternitiesFragment()
{
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.frat_fragment, null);
// Retrieve the SwipeRefreshLayout and ListView instances
swipeLayoutFraternities = (SwipeRefreshLayout)view.findViewById(R.id.swipe_refresh_fraternities);
swipeLayoutFraternities.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
new Handler().postDelayed(new Runnable() {
@Override public void run() {
swipeLayoutFraternities.setRefreshing(false);
}
}, 3000);
}
});
// Set the color scheme of the SwipeRefreshLayout by providing 4 color resource ids
swipeLayoutFraternities.setColorScheme(
R.color.tech_blue,
R.color.tech_gold,
R.color.tech_blue,
R.color.tech_gold);
new RemoteDataTask().execute();
return view;
}
private class RemoteDataTask extends AsyncTask<Void, Void, Void> {
@Override
protected void onPreExecute() {
super.onPreExecute();
mProgressDialog = new ProgressDialog(getActivity());
mProgressDialog.setTitle("Loading Fraternities");
mProgressDialog.setMessage("Loading...");
mProgressDialog.setIndeterminate(false);
mProgressDialog.show();
}
@Override
protected Void doInBackground(Void... params) {
fraternitiesList = new ArrayList<Frat>();
try{
ParseQuery<ParseObject> fraternitiesQuery = new ParseQuery<ParseObject>("Fraternities");
Log.i("Query", " Created");
fraternitiesQuery.orderByAscending("fratName");
objList = fraternitiesQuery.find();
for(ParseObject Fraternity : objList)
{
Frat fraternity = new Frat();
fraternity.setFratName((String) Fraternity.get("fratName"));
fraternity.setVoteCount((Integer) Fraternity.get("VoteCount"));
fraternitiesList.add(fraternity);
}
} catch (ParseException e)
{
Log.e("Error", e.getMessage());
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Void result)
{
fratList = (ListView)getActivity().findViewById(R.id.frat_list);
fratAdapter = new fraternitiesAdapter(getActivity(), fraternitiesList);
Log.d("Adapter Created", "Created");
mProgressDialog.dismiss();
fratList.setAdapter(fratAdapter);
}
}
}
이 브로큰 파이프 오류로 이어지는 잘못된 점을 파악하는 데 정말로 도움이 필요합니다. 어떤 도움이나 의견을 보내 주시면 대단히 감사하겠습니다!
그래서이 코드 내 전체 RemoteDataTask 클래스를 교체하거나 클래스의 내부를 놓아야 시도를 가지고? 그리고이 메서드는 테이블에서 모든 데이터를 가져와 List fraternityList에 저장합니까? – Rbro112
쿼리 부분을 제거하고이 부분으로 바꿀 수 있습니다. 그것이 작동하는 경우 전체 –
대체하려고 실제로 실제로 내 ListView 어댑터에서 변수 형식의 오류를 수정하여 위의 코드로 작동하도록있어,하지만 불행히도 지금은 단지 테이블의 첫 번째 행을 반환합니다. 위의 메서드는 모든 행을 가져 옵니까? – Rbro112