Проблема с прокруткой TextView - PullRequest
1 голос
/ 06 октября 2010

Hii

Я кодировал приложение, которое показывает список запущенных процессов, и я использовал TextView для отображения запущенного процесса на экране.Я пробовал 2 разных метода для отображения TextView.В одном методе я объявил TextView в самом коде

TextView tv = new TextView(this);
this.setContentView(tv);

Во втором методе я объявил макет в файле main.xml

setContentView(R.layout.main);
TextView tv=(TextView) findViewById(R.id.RunApp);

Для обоих методов яЯ использую setMovementMethod для перемещения прокрутки для моего TextView

tv.setMovementMethod(new ScrollingMovementMethod()); 

Программа работает нормально в эмуляторе. Но если я использую второй метод, то прокрутка не происходит, если я запускаю приложениев моем мобильном телефоне.В эмуляторе работает нормально.Почему он ведет себя по-другому в моем Android 2.1 Samsung Galaxy S ??Почему прокрутка не происходит во втором методе ??В первом методе прокрутка происходит без проблем на моем мобильном телефоне.

Это мой код ..

public class listRunningApps extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    //setContentView(R.layout.main);
    //TextView tv=(TextView) findViewById(R.id.RunApp);

    TextView tv = new TextView(this);
    this.setContentView(tv);

    tv.setMovementMethod(new ScrollingMovementMethod()); 

    ActivityManager actvityManager = (ActivityManager)
               this.getSystemService( ACTIVITY_SERVICE );
    List<RunningAppProcessInfo> procInfos = actvityManager.getRunningAppProcesses();

    for(int j=0; j < 2; j++) 
/*I have done iteration 2 times so that we have a long process list 
    sufficeint enough for scrolling*/
        {
        for(int i = 0; i < procInfos.size(); i++)
            {
                tv.setText(tv.getText().toString()+procInfos.get(i).processName+
                    " " + String.valueOf(procInfos.get(i).processName.length())+"\n");
            }

    tv.setText(tv.getText().toString()+"----------------------------"+"\n");
        }
     }
}

Это мой main.xml

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

    <TextView
        android:id="@+id/jsttxt"  
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="Testing TextView Scrolling"/>

<TextView
    android:id="@+id/RunApp"
    android:layout_marginLeft="30px"
    android:layout_marginRight="30px"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_below="@id/jsttxt"
    />

</RelativeLayout>

В первом методе прокрутка происходит на моем мобильном телефоне без каких-либо проблем. Можете ли вы помочь мне, почему прокрутка не происходит на моем мобильном телефоне во втором методе, где как это работает должным образом в моем эмуляторе?

Ответы [ 2 ]

1 голос
/ 06 октября 2010

почему бы вам не поместить текстовое представление в scrollview в макет xml. попробуй, я думаю это сработает

0 голосов
/ 06 октября 2010

Я изменил файл main.xml с помощью scrollview, как предложено ud_an

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


<TextView
    android:id="@+id/jsttxt"  
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Testing TextView Scrolling"/>

<ScrollView android:layout_width="wrap_content"
   android:layout_height="wrap_content">

<TextView
    android:id="@+id/RunApp"
    android:layout_marginLeft="30px"
    android:layout_marginRight="30px"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_below="@id/jsttxt"
    />
</ScrollView>
</RelativeLayout>

Теперь прокрутка работает и во втором методе. Спасибо ud_an

Но почему эмулятор и мой мобильный телефон действуют одинаково в предыдущем случае, когда в эмуляторе прокручивается, а в мобильном нет прокрутки ???

...