0

フラグメントで listView アイテムがクリックされたときに呼び出されるアクティビティがあります。私の問題は、レイアウトを変更して(テキストビューのテキストを設定するなど)、setContentView を呼び出した後でも、アクティビティ画面が空白になることです。

どこでも使用されている Log.i ive から、logcat で、すべてのデータを確認でき、適切に設定されているため、問題はありません。

私の質問は、行った変更が画面に表示されるようにする方法/新しいデータでレイアウトを更新する方法です。

public class SemListViewActivity extends Activity
{
    JSONObject recdJson=new JSONObject();
    JSONArray ar;
    ArrayList<HashMap<String, String>> keyslist;
    TextView semTCredits, semSession, semGPA;
    ListView semList;
    SemListAdapter adapter;

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        Log.i("Info Tag Sem","Inside Sem");

        this.requestWindowFeature(Window.FEATURE_NO_TITLE);
        super.onCreate(savedInstanceState);
        setContentView(R.layout.sem_details_listview_layout);

        //LayoutInflater inflater = (LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        //View v = inflater.inflate(R.layout.sem_details_listview_layout,null);

        ar = new JSONArray();
        keyslist = new ArrayList<HashMap<String, String>>();
        try
        {
            recdJson = GlobalVars.semJSON;
            Log.i("Info Tag Sem","Got the JSON");
            ar = recdJson.getJSONArray("seminfo");
            Log.i("Info Tag Sem","assigning JSON Array");
            for (int i = 0; i < ar.length(); i++)
            {
                JSONObject jObject = ar.getJSONObject(i);
                HashMap<String, String> map = new HashMap<String, String>();
                Log.i("Info Tag Sem","jObject Init"+i);
                Log.i("Info Tag Sem",jObject.toString());
                Log.i("Info Tag Sem",jObject.getString("subcode"));
                map.put("subcode", jObject.getString("subcode"));
                map.put("sub", jObject.getString("sub"));
                map.put("credits", jObject.getString("credits"));
                map.put("grade", jObject.getString("grade"));


                keyslist.add(map);
            }
            Log.i("Info Tag Sem","Done with Hashmapping");

            semTCredits = (TextView)findViewById(R.id.semTCredits);
            semSession = (TextView)findViewById(R.id.semSession);
            semGPA = (TextView)findViewById(R.id.semGPA);

            Log.i("Info Tag Sem","Set the textviews");

            semTCredits.setText("Total Credits: " + recdJson.getString("credits"));
            semSession.setText("Session: " + recdJson.getString("session"));
            semGPA.setText("Semester GPA: " + recdJson.getString("gpa"));



            semList = (ListView)findViewById(R.id.semlist);

            adapter = new SemListAdapter(this, keyslist);
            semList.setAdapter(adapter);

            Log.i("Info Tag Sem","Put the content");

            setContentView(R.layout.sem_details_listview_layout);

        } catch (JSONException e)
        {
            e.printStackTrace();
            Log.i("Info Tag Sem","Nothing happened ");
        }

    }

}

これは関連するxmlレイアウトです

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/semTCredits"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:padding="5dp"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:textStyle="bold" />

    <TextView
        android:id="@+id/semSession"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:padding="2dp"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:textIsSelectable="true" />

    <TextView
        android:id="@+id/semGPA"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:padding="2dp"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:textIsSelectable="true" />

    <ListView
        android:id="@+id/semlist"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >
    </ListView>

</LinearLayout>

この質問が重複している場合は申し訳ありません。私の問題をどのように表現すればよいかわかりません。

4

1 に答える 1

0

あなたはsetContentView()2回呼び出しています.この2番目の呼び出しは:

        Log.i("Info Tag Sem","Put the content");

        setContentView(R.layout.sem_details_listview_layout);

    } catch (JSONException e)

上記で行ったすべての変更を消去します...単に削除します。

于 2013-04-13T16:58:31.427 に答える