내 Activity1에 10 개의 항목이있는 ListView가 있습니다. 어떤 항목을 클릭했는지에 따라 StringArray의 일부만 내 다음 활동으로 전달하려고합니다. 전달 된 StringArray를 ArrayAdapter를 통해 GridView에 바인딩하려고합니다.StringArray의 일부를 ListItem 기반의 다음 활동으로 전달하는 방법
첫 번째 문제 : 내가
이는 두 번째 문제 내 activity1에의의 ListView에서 클릭 한 항목에 따라, 다음 활동에서 무언가를 전달할 수있는 방법을 이해하지는 : 어떻게 난 단지 부품을 얻을 수 있습니다 내 StringArray My String Array에는 200 개의 항목이 있습니다. 이제는 (Activity1의 itemclick에 따라) 실제로 필요한 항목 만 전달하려고합니다.
는 여기가의 GridView에 내 항목을 결합 할 경우 여기에 activity2에이 내 코드
public class MainActivity extends Activity {
// ListView items
String[] provinces = new String[]{
"Prozentrechnung, Terme und Brüche",
"Gleichungen",
"Ungleichungen und Beträge",
"Geraden, Parabeln und Kreise",
"Trigonometrie",
"Potenzen, Wurzeln und Polynome",
"Exponentialfunktionen und Logarithmen",
"Trigonometrische Funktionen",
"Differenzialrechnung",
"Integralrechnung"
};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListView provincelist = (ListView)findViewById(R.id.lvProvinceNames);
//add header to listview
LayoutInflater inflater = getLayoutInflater();
ViewGroup header = (ViewGroup)inflater.inflate(R.layout.listheader, provincelist, false);
provincelist.addHeaderView(header, null, false);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, provinces);
provincelist.setAdapter(adapter);
provincelist.setOnItemClickListener(new OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
// TODO Auto-generated method stub
//we use the items of the listview as title of the next activity
String province = provinces[position-1];
//we retrieve the description of the juices from an array defined in arrays.xml
String[] provincedescription = getResources().getStringArray(R.array.provincedescription);
//List<String> aufgabenListe = new ArrayList<String>(Arrays.asList(provincedescription));
//final String provincedesclabel = provincedescription[position-1];
Intent intent = new Intent(getApplicationContext(), DetailActivity.class);
intent.putExtra("position",position);
intent.putExtra("province", province); //aktualisieren der Titel in der DetailActivity
intent.putExtra("provincedescription", provincedescription); //befüllen der GridView
startActivity(intent);
}
});
}
}
입니다.
public class DetailActivity extends Activity {
String title;
String[] array;
int position;
//int image;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.detailactivity);
TextView tvTitleLabel = (TextView)findViewById(R.id.tvTitleLabel);
GridView gridView = (GridView) findViewById(R.id.gridView);
ArrayAdapter<String> adapter;
Bundle extras = getIntent().getExtras();
position = extras.getInt("position");
if (extras != null) {
title = extras.getString("province");
tvTitleLabel.setText(title);
/////Fehlermeldung: array = null --> NullPointerException
array = extras.getStringArray("provincedescription");
gridView.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, array));
gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) {
}
});
//adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, array);
//gridView.setAdapter(adapter);
}
}
}
UPDATE : 여기 당신이, 내가 사용 아마도 당신이 싱글을 살펴해야 원하는 것을 이해한다면 내 문자열 배열
<string-array name="provincedescription">
<item>A1.1</item>
<item>A1.2</item>
<item>A1.3</item>
<item>A1.4</item>
<item>A1.5</item>
<item>A1.6</item>
<item>A1.7</item>
<item>A1.8</item>
<item>A1.9</item>
<item>A1.10</item>
<item>A1.11</item>
<item>A1.12</item>
<item>A1.13</item>
<item>A1.13</item>
<item>A1.14</item>
<item>A2.1</item>
<item>A2.2</item>
<item>A2.3</item>
<item>A2.4</item>
<item>A2.5</item>
<item>A2.6</item>
<item>A2.7</item>
<item>A2.8</item>
<item>A2.9</item>
<item>A2.10</item>
<item>A2.11</item>
<item>A2.12</item>
<item>A3.1</item>
<item>A3.2</item>
<item>A3.3</item>
<item>A3.4</item>
<item>A3.5</item>
<item>A3.6</item>
<item>A3.7</item>
<item>A3.8</item>
<item>A3.9</item>
<item>A3.10</item>
<item>A3.11</item>
<item>A3.12</item>
</string-array>
까지 내가 당신이 데이터를 올바르게 전달하는 것을 볼 수있는 문제가 뭐죠 ?? –
문제는 내 R.array.provincedescription에 200 개의 항목이 있다는 것입니다. 그래서 ListView에서 하나의 항목을 클릭하면이 200 개 항목 중 일부만 필요합니다. 이제 저는 모두 200을 통과합니다. 내 activity1에서 클릭 한 항목에 따라 필요한 항목에 대한 R.array.provincedescription을 어떻게 검색합니까? 그리고 switch case 문없이 – ando
배열을 정적으로 만들고 클래스 이름을 통해 액세스 할 수있는 한 가지 방법은 무엇입니까? –