임 하나의 클래스에서 다른 클래스로 값을 보내고 표시하려고합니다. 그러나 th 값은 표시되지 않습니다. 그리고 메신저는 빈 창을 띄게됩니다. 빨간색 오류는 보이지 않지만 logcat에서 텍스트 줄을 찾을 수 있습니다. Key playerList expected String이지만 값은 java.lang.Integer입니다. 그래서 나는 문자열 대신에 int를 얻는 이유가 무엇인지 추측한다. 내가 왜 그 일이 일어날 지 모르지만, 내가 어디에서 문제인지 알 수는있어.키 예상 문자열이지만 값이 java.lang.Integer (Arrayadapter 값)
사용자가 문자열 및 광고를 listview (어댑터)에 입력하는 첫 번째 활동입니다. 내가 입력 : 표시 할이 작업에서는
public class ZaidejaiActivity extends ActionBarActivity implements View.OnClickListener{
public Button mBtnIstrinti;
public Button mBtnPrideti;
public Button mBtnPradeti;
public EditText mYrasytiVarda;
public ListView mZaidejai;
ArrayList<String> list = new ArrayList<String>();
ArrayAdapter<String> adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_zaidejai);
mBtnPrideti = (Button)findViewById(R.id.pridėtiBtn);
mBtnPrideti.setOnClickListener(this);
mYrasytiVarda = (EditText)findViewById(R.id.VardoYrasymoBtn);
adapter = new ArrayAdapter<String>(this, android.R.layout.simple_expandable_list_item_1, list);
// set the mZaidejai variable to your list in the xml
mZaidejai=(ListView)findViewById(R.id.sarašas);
mZaidejai.setAdapter(adapter);
mZaidejai.setOnItemClickListener(new AdapterView.OnItemClickListener() {
// remove item from List.
@Override
public void onItemClick(AdapterView<?> parent, View view, final int position, long id) {
list.remove(position);
AlertDialog.Builder builder = new AlertDialog.Builder(ZaidejaiActivity.this);
builder.setMessage("Delete?");
builder.setTitle("Confirm Action");
builder.setPositiveButton("Delete", new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int id)
{
adapter.notifyDataSetChanged();
}
//checked.clear();
});
builder.setNegativeButton("Cancel", null);
builder.create();
builder.show();
}
});
mBtnPradeti = (Button)findViewById(R.id.žaistiBtn);
mBtnPradeti.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// count items
int i;
for (i = 0; i < adapter.getCount(); i++) {
String obj = adapter.getItem(i);
// send items to other activity
Intent pradetiZaidima = new Intent(v.getContext(), ZaidimasActivity.class);
pradetiZaidima.putExtra("playerList", adapter.getPosition(obj));
startActivity(pradetiZaidima);
}
}
});
};
@Override
public void onClick(View v) {
String input = mYrasytiVarda.getText().toString();
if(input.length() > 0)
{
// add string to the adapter, not the listview
adapter.add(input);
// no need to call adapter.notifyDataSetChanged(); as it is done by the adapter.add() method
}else{
AlertDialog alertDialog = new AlertDialog.Builder(this).create();
alertDialog.setTitle("Klaida:");
alertDialog.setMessage("Blogai yrašytas vardas");
alertDialog.setButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// here you can add functions
}
});
alertDialog.show();
}
}
ZaidimasActivity이 ZaidejaiActivity를 확장
공용 클래스 {
public TextView mZaidejas;
public TextView mKlausimas;
public Button mKitasKlausimas;
ArrayList<String> listas;
ArrayAdapter<String> adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_zaidimas);
Bundle recdData = getIntent().getExtras();
String myVal = recdData.getString("playerList");
//listas = getIntent().getExtras().getStringArrayList("playerList");
mZaidejas = (TextView)findViewById(R.id.ZaidejoVardas);
mZaidejas.setText(myVal);
}
나는 코드의 잘못된 부분은 내가 어디 있는지 벌목이 항목을 다른 활동으로 보냅니다. pradetiZaidima.putExtra("playerList", adapter.getPosition(obj));
getposition 부분은 다른 것으로 바뀌었지만 건조한 모든 것은 빨간색으로 표시됩니다. 가장 좋은 해결책은 getList를 사용하는 것이지만 너무 빨갛다는 생각. 이견있는 사람?