2017-02-17 2 views
0

저는 android studios를 처음 사용하며 현재 첫 번째 프로젝트를 마치려고합니다. 그러나, 나는 listview에서 선택된 값을 다음 활동으로 전달해야하는 부분에 갇혀있다. 코드에 대한 연구를 시도했지만 아무도 작동하지 않는 것 같습니다. 어떤 도움이라도 대단히 감사하겠습니다.listview에서 다음 활동으로 가치를 전달하는 방법

DisplayProduct.java

public class DisplayProduct extends AppCompatActivity { 

ListView listView; 
SQLiteDatabase sqLiteDatabase; 
DatabaseHelper databaseHelper; 
Cursor cursor; 
ListDataAdapter listDataAdapter; 

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

    listView = (ListView)findViewById(R.id.listView); 
    listDataAdapter = new ListDataAdapter(getApplicationContext(),R.layout.display_product_row); 
    listView.setAdapter(listDataAdapter); 

    databaseHelper = new DatabaseHelper(getApplicationContext()); 

    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 

     @Override 
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) 
     { 
      //Object data = parent.getItemAtPosition(position); 
      //String value = data.toString(); 



     } 
    }); 
    sqLiteDatabase = databaseHelper.getReadableDatabase(); 
    cursor = databaseHelper.getInformations(sqLiteDatabase); 
    if(cursor.moveToFirst()) 
    { 
     do { 

      String contact,location,issue; 
      contact = cursor.getString(0); 
      location = cursor.getString(1); 
      issue = cursor.getString(2); 
      Information information = new Information(contact,location,issue); 
      listDataAdapter.add(information); 


     } while (cursor.moveToNext()); 
    } 
} 

}

ListDataAdapter.java

public class ListDataAdapter extends ArrayAdapter { 
List list = new ArrayList(); 
public ListDataAdapter(Context context, int resource) { 
    super(context, resource); 
} 

static class LayoutHandler 
{ 
    TextView Contact,Location,Issue; 
} 

@Override 
public void add(Object object) { 
    super.add(object); 
    list.add(object); 

} 

@Override 
public int getCount() { 
    return list.size(); 
} 

@Override 
public Object getItem(int position) { 
    return list.get(position); 
} 

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 

    View row = convertView; 
    LayoutHandler layoutHandler; 
    if (row == null) { 
     LayoutInflater layoutInflater = (LayoutInflater) this.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     row = layoutInflater.inflate(R.layout.display_product_row, parent, false); 
     layoutHandler = new LayoutHandler(); 
     layoutHandler.Contact = (TextView) row.findViewById(R.id.textView8); 
     layoutHandler.Location = (TextView) row.findViewById(R.id.textView18); 
     layoutHandler.Issue = (TextView) row.findViewById(R.id.textView90); 
     row.setTag(layoutHandler); 

    } else { 
     layoutHandler = (LayoutHandler) row.getTag(); 


    } 

    Information information = (Information) this.getItem(position); 
    layoutHandler.Contact.setText(information.getContact()); 
    layoutHandler.Location.setText(information.getLocation()); 
    layoutHandler.Issue.setText(information.getIssue()); 

    return row; 





} 

}

LocationDetail.java

public class LocationDetail extends AppCompatActivity { 


private TextView Textv; 
DatabaseHelper databaseHelper; 
SQLiteDatabase sqlitedatabase; 

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

} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.menu_location_detail, menu); 
    return true; 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    // Handle action bar item clicks here. The action bar will 
    // automatically handle clicks on the Home/Up button, so long 
    // as you specify a parent activity in AndroidManifest.xml. 
    int id = item.getItemId(); 

    //noinspection SimplifiableIfStatement 
    if (id == R.id.action_settings) { 
     return true; 
    } 

    return super.onOptionsItemSelected(item); 
} 
,745,

} DisplayProduct.java에서

+3

가능한 복제 [안드로이드에 다른 하나 개의 활동에서 개체를 전달하는 방법 (HTTP : //stackoverflow.com/questions/2736389/how-to-pass-an-object-from-one-activity-to-another-on-android) – petey

+0

그냥 의도를 사용하고 의도를 사용하여 보내려는 데이터를 입력하십시오. 추가 .. – ZeroOne

답변

0

: LocationDetail.java에서

Intent intent = new Intent(this, LocationDetail.class); 
    Object data = parent.getItemAtPosition(position); 
    String message = data.toString(); 
    intent.putExtra(EXTRA_MESSAGE, message); 
    startActivity(intent); 

:

Intent intent = getIntent(); 
    String value = intent.getStringExtra(EXTRA_MESSAGE); 
+0

안녕하세요, 고마워요. 답장. editText를 어떻게 검증 할 수 있습니까? 키 입력을 시도했지만 기호를 해결할 수 없습니다. –

+0

죄송합니다. 실수를했습니다. 수정 된 답변 확인 –

+0

좋아요, 방금 해봤습니다. 어떤 오류도 없었지만 LocationDetail.java에 여전히 값이 표시되지 않습니다. 왜 이것이 사실 일지 모른다고 생각하세요? –

관련 문제